Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确定值是否为有效的日期时间格式_C#_.net_Datetime_Datetime Format - Fatal编程技术网

C# 如何确定值是否为有效的日期时间格式

C# 如何确定值是否为有效的日期时间格式,c#,.net,datetime,datetime-format,C#,.net,Datetime,Datetime Format,我尝试使用DateTime.ParseExact()将字符串值如2019-04-30T06:46:31.811:00解析为日期时间。我用的图案没有一个不合适 我得出结论,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" "yyy

我尝试使用
DateTime.ParseExact()
将字符串值如
2019-04-30T06:46:31.811:00
解析为日期时间。我用的图案没有一个不合适

我得出结论,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"
我使用此格式(2012-09-30T23:00:00.0000000 Z)及其工作,您可以将此字符串转换为此格式,然后尝试以下操作:

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

@Viacheslav Yes,
:00
无效,因为它应该是
+00
。您已经可以想象,如果它是无效的,您应该对字符串值进行一些“维护”,否则它们根本不会被解析。你已经试过做些什么了吗?@AlbertoSolano谢谢你的评论。不,这是不需要的。我会将这些日期显示为原始值。您能否澄清一下,您是否可以控制所使用的格式,或者您是否只需要解析现有数据?如果是后者,那么所有的值都以“:00”结尾还是有其他偏移?(我想它真的应该是UTC偏移量?)感谢您的所有评论。我的目标是确定此字符串是否对datetime有效。就这样。我不需要修理它。答案是:“此sting对datetime无效”。这并不是说它“对datetime无效”——例如,
yyyy-MM-dd'HH:MM:ss.fff':00'
的格式字符串可以工作。但如果值为2019-04-30T06:46:31.811:01,则不适用。我试图从OP中获得更清晰的信息,但我希望他们无法选择使用的格式。