使用IO.File.Copy()复制时,导致文件中日期更改的系统日期格式

时间:2019-04-23 20:29:04

标签: windows vb.net

前几天,当我的代码尝试从配置文件中的一行文本中解析日期时,用户遇到了异常。客户正在使用中文日期本地化,因此我认为问题出在解析。

但是,当重现问题时,我发现文件本身的文本为中文格式。此文件是从备份位置复制的,我已确认不是为中文格式。

事实证明,以前是通过调用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()为什么导致此更改的任何想法?

1 个答案:

答案 0 :(得分:0)

使用“ TryParseExact”解析日期时间总是很好。

回答您的问题,可能需要注意的事情很少:

  1. 查看用于复制文件的代码。
  2. 尝试使用StreamReader / StreamWriter复制文件,并指定编码类型。