次のタイプの日付を解析(正確)するための適切なフォーマット文字列を見つけようとしています。
1-01-01T00:00:00+00:00
-0001年1月1日2011-12-14T15:53:40+00:00
-2011年12月14日
したがって、年の長さは可変(1〜4文字)のようです。
私が現在正確に解析するために使用しているフォーマットスティングは次のとおりです。
c_DateTimeFormatString = "yyyy-MM-ddTHH':'mm':'sszzz"
明らかに、これは2番目の文字列にのみ一致します。最初のものが今日現れました。今、私たちはそれも一致させる必要があります。
これを実現するためのフォーマット文字列はありますか?
更新#1
入力した日付文字列の後にクリアテキストで実際の日付を追加しました。
UPDATE#2
正確な解析には、複数のフォーマット文字列を渡すことができるオーバーロードがあります。これは正しい方法のようです。
したがって、最初の試みは次を使用することでした。
DateTime.ParseExact("1-01-01T00:00:00+00:00 ", new[] { "yyyy-MM-ddTHH':'mm':'sszzz", "yyy-MM-ddTHH':'mm':'sszzz", "yy-MM-ddTHH':'mm':'sszzz", "y-MM-ddTHH':'mm':'sszzz" }, CultureInfo.CreateSpecificCulture("en-US"), DateTimeStyles.AssumeLocal)
しかし悲しいことに、これは正しい結果をもたらさず、最初の日付文字列は次のように解析されます:
01.01.2001
ではなく
01.01.0001
では、問題は、1桁だけで表される1年目を解析するための正しい解析文字列は何でしょうか。