请帮助确定是否有效的日期时间格式

时间:2019-05-02 07:10:11

标签: c# .net datetime datetime-format

我尝试将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"

1 个答案:

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