如果时间是24:00,我如何管理日期?

时间:2012-12-06 15:44:57

标签: c# .net date

我有一些来自XML文档的数据,例如2012-12-06T24:00。

问题是当我尝试转换它时:24:00不存在。所以:

DateTime.Parse(myDateTimeString).Hour

告诉我这个例外:System.FormatException: The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar.

我该如何解决?

我想到的解决方案是用T00替换(字符串)T24,这看起来很糟糕......

1 个答案:

答案 0 :(得分:9)

DateTime无法处理此问题。你必须在调用Parse之前“清理”你的字符串并处理溢出(取决于“24:00”的实际含义):

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

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

编辑:添加了“溢出”-part。