0

DateTimeをEDI-Order( "20120713"/YYYYMMDDまたは"120713"/ YYMMDD、またはドットのない他の日付なので、数字だけ)からC#の"DD.MM.YYY"のような有効な日付に解析しようとしています。

異なるEDI-Ordersにいくつの異なる日付形式があるのか​​わからないので、それらすべてに適用できる解決策を探しています。

みんなありがとう。

4

2 に答える 2

1

このオーバーロードの使用に興味があるはずですParseExact。複数の形式を配列として渡すことができ、それらに基づいて解析を試みます(形式を制御でき、プロセスに1つを使用する予定があると便利です)

DateTime start = DateTime.ParseExact("20120713",
                    new[] { "yyyyMMdd", "yyMMdd" },
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None);
DateTime end = DateTime.ParseExact("120713",
                    new[] { "yyyyMMdd", "yyMMdd" },
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None);

あなたの出力のためにあなたはすることができますstart.ToString("dd.MM.yyyy")

于 2012-07-27T11:00:43.693 に答える
0

これは複数のフォーマットで機能するはずです

DateTime Result = new DateTime();
string[] dateFormats = new string[]{ "YYYYMMDD", "YYMMDD", /*other formats you might need*/ };

if (dateFormats.Any(format => DateTime.TryParseExact("yourDate", format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out Result)))
{ /* Result contains the parsed DateTime and you can use it*/ }
else 
{ /* DateTime couldn't be parsed for any format you specified */ }
于 2012-07-27T11:00:35.657 に答える