DateTime.Parse错误

时间:2011-12-13 23:18:28

标签: c# datetime .net-2.0

我们的网络服务使用Datetime.parse方法将数据从xml转换为DateTime格式。它分别解析日期和时间字符串并将其添加到一起 -

DateTime.Parse(Date_string).add(TimeSpan.Parse(Time_string)).
除了上周的几个小时外,代码工作正常。时间比实际时间提前12小时显示。例如,01/01/2011 10:00:00将被解析为01/01/2011 22:00:00。在此期间的大多数请求都比实际时间提前12小时处理datetime值,尽管有些处理正确。它现在工作正常,之后没有看到它。

有没有人见过这样的问题?

1 个答案:

答案 0 :(得分:1)

你说“代码工作正常,除了上周的几个小时”,但是你没有明确说明那个时间或你所在的时区。有可能是夏令时变化吗?

你根本不应该使用TimeSpan.Parse。 TimeSpan不代表时间,尽管它的外观为hh:mm:ss。 TimeSpan表示固定的DURATION时间。

如果确实给出了单独的日期和时间字符串,请在解析之前将它们连接在一起,例如:

DateTime dt = DateTime.Parse(date_string + " " + time_string);

您还应该了解所发送字符串的时区含义。有关详细信息,请参阅DateTime.Parse上的MSDN文章。