C# 日期时间解析 - 格式不一致

尼克·戈洛博罗德科

我有一个示例日期/时间字符串,我需要将其转换为 datetimeoffset。

有一个巨大的不一致 - 如果一个月中的某天 < 10,则 Month 和 Day 之间有两个空格,否则只有一个空格。

例如:'Tue Dec 4 22:39:38 UTC 2018''Tue Dec 14 22:39:38 UTC 2018'

我目前使用DateTimeOffset.ParseExact(dateTime, "ddd MMM dd HH:mm:ss UTC yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal)which解析它,对于日期 < 10 的日期失败并出现错误:

FormatException: String 'Tue Dec  4 22:52:42 UTC 2018' was not recognized as a valid DateTime.

我知道我可以用一个空格搜索和替换双空格字符,但是有没有更优雅的方法来使用格式字符串来实现这一点?

西麦克夏普菲斯

这就是DateTimeStyles.Allow*标志的用途:它们指示解析器忽略日期字符串中的空格。

在您的情况下,字符串以缩写的工作日名称开头,因此该标志至少足以在一位数字的情况下忽略额外的空间

DateTimeStyles.AllowInnerWhite

此处记录了此和相关标志:https : //docs.microsoft.com/en-us/dotnet/api/system.globalization.datetimestyles?view=netframework-4.7.2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章