我尝试将2019-04-30T06:46:31.811:00
之类的字符串值解析为DateTime.ParseExact()
的DateTime。
我使用的任何一种模式都不适合。
我得出一个结论,在日期时间字符串的末尾的:00
这是无效的和预期的模式,它将代表时区,应该像+05
或+05:00
我使用的某些模式变体:
"yyyy-MM-dd'T'HH:mm:ss.fffz"
"yyyy-MM-dd'T'HH:mm:ss.fffK"
"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff':'z"
"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff':'zz"
"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff':'Z"
"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff':'K"
"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff':'ss"
"yyyy-MM-dd'T'HH:mm:ss.fff:zz"
"yyyy-MM-ddTHH:mm:ss.fff:zz"
"yyyy-MM-dd'T'HH:mm:ss.fff:zz"
"yyyy-MM-ddTHH:mm:ss.fff:zz"
答案 0 :(得分:0)
我使用这种格式(2012-09-30T23:00:00.0000000Z)及其工作方式,您可以将此字符串转换为这种格式并尝试以下操作:
var date = DateTime.ParseExact("2012-09-30T23:00:00.0000000Z",
"yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
Console.WriteLine(date);