3

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

4

5 回答 5

9

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));
于 2012-11-07T13:11:14.537 回答
6

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

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

DateTimeOffset是准确表示信息的类型 -DateTime不得不丢失一些信息。

于 2012-11-07T13:14:17.027 回答
5

使用DateTime.Parse()

DateTime dt = DateTime.Parse ("2007-08-31T06:59:40+02:00")
于 2012-11-07T13:09:08.957 回答
2

您可以使用 DateTimeOffset.TryParse 方法。

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

于 2012-11-07T13:11:57.573 回答
1

使用DateTimeOffset.Parse().

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

于 2012-11-07T13:12:41.553 回答