我正在尝试将此字符串转换Mon Aug 05 08:02:27 +0000 2013
为,DateTime
并且它不能正确转换时间。时间会有一些变化。这是什么问题?我用下面的代码
DateTime.ParseExact("Mon Aug 05 08:02:27 +0000 2013","ddd MMM dd HH:mm:ss zzz yyyy", CultureInfo.InvariantCulture)
它返回的输出是
{05-08-2013 13:32:27}
Date: {05-08-2013 00:00:00}
Day: 5
DayOfWeek: Monday
DayOfYear: 217
Hour: 13
Kind: Local
Millisecond: 0
Minute: 32
Month: 8
Second: 27
Ticks: 635113063470000000
TimeOfDay: {13:32:27}
Year: 2013
DateTime
wrt非常令人困惑(损坏?)。时区等。
一个快速的解决方案可能是DateTimeStyles.AdjustToUniversal
,即:
var d = DateTime.ParseExact("Mon Aug 05 08:02:27 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AdjustToUniversal
);
如果没有任何值DateTimeStyles
,则默认为返回aDateTime
的“ kind” Local
,如您在输出中所引用的那样。由于您的输入字符串明确+0000
位于该zzz
位置,并且您的本地时间与+0000
计算机上的时间不同,因此默认值是转换为您的时间。
使用DateTimeStyles.AdjustToUniversal
,返回值的“种类”为Utc
。
对于可能不太混乱的日期和时间界面,请考虑Noda Time。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句