前几天,当我的代码尝试从配置文件中的一行文本中解析日期时,用户遇到了异常。客户正在使用中文日期本地化,因此我认为问题出在解析。
但是,当重现问题时,我发现文件本身的文本为中文格式。此文件是从备份位置复制的,我已确认不是为中文格式。
事实证明,以前是通过调用IO.File.Copy()从该位置复制文件的,文本从以下位置更改:
22/JUN/2016,00:00:00
到
22/6月/2016,00:00:00
文件大小甚至已更改。
由于这个原因,在尝试在此调用中解析该文本时引发了异常:
DateTime.ParseExact(timeString, datetimeFormat, CultureInfo.InvariantCulture)
数据不必本地化,因此我们始终使用CultureInfo.InvariantCulture。但是,如果文件更改日期格式,则会中断。
当我照常复制和粘贴文件时,文件没有更改,这更加令人好奇。
在将“区域格式”更改为中文(简体中文)之后,我验证了Windows 10上会出现此问题。
关于IO.File.Copy()为什么导致此更改的任何想法?
答案 0 :(得分:0)
使用“ TryParseExact”解析日期时间总是很好。
回答您的问题,可能需要注意的事情很少: