3

2012-12-06T24:00などのXMLドキュメントからのデータがあります。

問題は私がそれを変換しようとしたときです:24:00は存在しません。それで :

DateTime.Parse(myDateTimeString).Hour

私にこの例外を与えてください:System.FormatException: The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar.

どうすれば修正できますか?

私が考える解決策は、(文字列)T24をT00に置き換えることです。これは恐ろしいようです...

4

1 に答える 1

9

DateTimeこれを処理することはできません。呼び出す前に文字列を「サニタイズ」Parseしてオーバーフローを処理する必要があります(「24:00」の実際の意味によって異なります)。

DateTime date = DateTime.Parse(myDateTimeString.Replace("T24:00", "T00:00"));

if (myDateTimeString.Contains("T24:00"))
{
    date = date.AddDays(1);
}

編集:「オーバーフロー」部分を追加しました。

于 2012-12-06T15:49:06.733 に答える