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中获得更清晰的信息,但我希望他们无法选择使用的格式。