我必须尝试从导致某些麻烦的字符串中解析出日期时间。
大多数字符串的时间如下
'Sat Aug 10 08:01:37 2013'
^ note one space
我TryParseExact
的原始日期格式为'ddd MMM d HH:mm:ss yyyy'
然而,在单位数天内,通常不会删除十位数字,而是将其替换为空格(见下文)
'Wed Aug 7 08:01:37 2013'
^^ note the two spaces
我的第一个想法是简单地删除所有空格以实现格式字符串:
'dddMMMdHH:mm:ssyyyy'
但我的DateTime.TryParseExact
失败并且从不接受新格式化(无空格)的格式字符串。为什么呢?
答案 0 :(得分:2)
因为使用TryParseExact
,日期的间距很重要。
有点hacky,但如果没有提供更好的解决方案,我会使用TryParseExact
进行'ddd MMM d HH:mm:ss yyyy'
,如果失败,则使用TryParseExact
进行另一个'ddd MMM d HH:mm:ss yyyy'
两个空格)
我认为我找到了一种更聪明的方法,将DateTimeStyles.AllowInnerWhite
传递给TryParseExact
方法。
根据文件:
字符串中间的额外空白字符必须是 在解析期间忽略,除非它们出现在DateTimeFormatInfo中 格式模式。
不确定它是什么意思“除非它们出现在DateTimeFormatInfo格式模式中。”但值得一试。