タイムスパンがあります:「P3M10DT5H2M」これらのコードで解析しようとしています:
var timespan = "P3M10DT5H2M"
string[] formats = new[] { "'PT's'S'", "'PT'm'M'", "'P'd'D'", "'PT'h'H'", "'P'd'DT'h'H'", "'P'd'DT'h'H'm'M'", "'PT'h'H'm'M'", "'P'd'DT'h'H'm'M's'S'", "'P'm'M'd'DT'h'H'm'M'" };
TimeSpan.ParseExact((string)timespan , formats, CultureInfo.InvariantCulture);
しかし、このエラーが発生します: mscorlib.dll で、タイプ 'System.FormatException' の最初のチャンス例外が発生しました
追加情報: 文字列は有効な TimeSpan として認識されませんでした。
最後の形式はこの文字列に一致するはずですが、そうでないのはなぜですか? また、もう 1 つの質問ですが、私のやり方はあまり良くありません。すべての可能性をフォーマットで書かなければならないからです。したがって、フォーマット配列の代わりに正規表現を使用する必要があります。私を助けてください。