使用offset将字符串转换为DateTime

时间:2012-11-07 13:07:34

标签: c# datetime

这是字符串:2007-08-31T06:59:40+02:00
如何将其转换为DateTime

5 个答案:

答案 0 :(得分:6)

你应该使用DateTimeOffset.ParseExact - 你知道你期望的完全格式,并且因为这可能来自另一台计算机而不是用户输入,这是一个明确的错误如果失败。同样,您应该指定不变文化,以指示这不依赖于执行线程的“当前文化”。

var value = DateTimeOffset.ParseExact(text,
                                      "yyyy'-'MM'-'dd'T'HH':'mm':'sszzz",
                                      CultureInfo.InvariantCulture);

DateTimeOffset是准确表示信息的类型 - DateTime 会丢失部分信息。

答案 1 :(得分:4)

使用DateTime.Parse()

DateTime dt = DateTime.Parse ("2007-08-31T06:59:40+02:00")

答案 2 :(得分:4)

DateTimeOffset还处理时区偏移:

DateTimeOffset.Parse("2007-08-31T06:59:40+02:00")

DateTimeOffset.ParseExact("2007-08-31T06:59:40+02:00", "yyyy-MM-ddTHH:mm:sszzzz"
                          ,System.Globalization.CultureInfo.InvariantCulture));

答案 3 :(得分:2)

您可以使用DateTimeOffset.TryParse方法。

http://msdn.microsoft.com/en-us/library/bb397029.aspx

答案 4 :(得分:1)

使用DateTimeOffset.Parse()

然后使用DateTime属性或DateTimeUtc属性来获取DateTime(但您应该调查是否可以继续使用DateTimeOffset。