C#datetime格式和存储时区信息

时间:2011-10-12 18:37:37

标签: c# datetime

我收到了以下形式的字符串:

“2011-10-12T11:55:34.803EST”

“2011-10-05T16:58:05.043GMT”

我想将这些值存储为DateTime对象,但是简单的DateTime.Parse()不起作用。无论如何我可以将这些字符串转换为DateTime对象吗?据我所知,DateTime不知道时区。

2 个答案:

答案 0 :(得分:1)

你可以用z替换GMT,它会起作用:

string date = "2011-10-05T16:58:05.043GMT".Replace("GMT", "z");
Console.WriteLine(DateTime.Parse(date));

祖鲁时间

答案 1 :(得分:0)

+1到IAbstractDownvoteFactor - Z是最好的区域。

您的约会时间与Iso8601差不多,但有自定义时区(http://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators了解初始信息)。

使用时区非常困难,因为它们的规则可能会改变,有些可能会出现和消失。如果您可以影响传入格式 - 请求时区的UTC(Z)或绝对偏移(+08:00)。

否则,您需要确定需要支持的时区,确定是否更改了规则以及是否正确设置了夏令时区域(即适当时使用PDT / PST)。玩得开心。