使用offset将字符串转换为DateTime

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

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)); 

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

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

DateTimeOffset是准确表示信息的类型 – DateTime 必须丢失一些信息。

使用DateTime.Parse()

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

您可以使用DateTimeOffset.TryParse方法。

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

使用DateTimeOffset.Parse()

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