CSV 文件中的日期格式异常行为

Date format in CSV file strange behaviour

我有一个 .csv 文件,该文件是使用某些遗留软件创建的。无法查看代码内部,了解它如何或做了什么来生成 csv 文件。

我的问题是日期字段格式表现异常。 .csv 文件以下列格式存储日期。

MM-dd-yyyy HH:mm:ss.SSS

在记事本(原始数据)中查看文件,我们得到这样的列列表:

"01-12-2013 14:23:38.000",146.199997
"01-12-2013 23:20:29.000",146.199997
"01-13-2013 17:59:23.000",152.299988
"01-13-2013 18:08:40.000",147.300003
"01-13-2013 18:25:52.000",156.000000
"01-13-2013 18:35:14.000",146.300003
"01-13-2013 18:44:56.000",148.500000
"01-13-2013 18:56:41.000",151.699997

注意:我已经删除了剩余的列以便于查看,因此我们只能看到 .csv 文件中的前 2 列。

现在,当我在 Excel 2010 版本 14.0.6023.1000(32 位)中打开此文件时,出现日期格式问题。

首先,如果我只是打开文件,我会得到这样的混合日期格式块:

还有这个:

我可以看到 Excel 在日值从 12 切换到 13 时感到困惑。如果我随后尝试使用以下单元格格式设置更改格式以解决问题:

然后当天数小于 13 时,我在列中显示以下内容:

当日大于等于13时格式如下:

任何帮助将不胜感激,因为我现在完全没有想法。

注意:我也曾尝试将 .csv 文件的内容复制到另一个文件中,但在新文件中发生了同样的事情。

此问题与 Excel 如何解释日期格式有关(M/D/Y 与 D/M/Y)。您的系统似乎设置了 D/M/Y 日期格式。您不会在 Excel 中找到该设置,因为它源自您的系统设置。转到语言设置并添加美国英语。然后将其设置为默认值并再次尝试打开 CSV 文件。 或者,您可以将 csv 文件内容粘贴到新的 sheet 中并使用 'Text-to-Columns' 功能,这将允许您指定日期格式。

.csv 的格式与区域设置之间存在冲突。

首先将数据导入为文本(而不是双击)。然后在 B1 或其他一些列中输入:

=DATE(MID(A1,8,4),MID(A1,2,2),MID(A1,5,2))+TIMEVALUE(MID(A1,13,8))

并应用所需的格式:

阅读@Gary's Student 和@hughg 的回答后,我为我的实例找到了解决方法。感谢您的想法。

所以要解决我的问题:

  1. 将日期和时间的区域设置修改为美国。
  2. 在 excel 中正常打开文件。
  3. 选择了相关列并将单元格格式设置为文本。这将文件中的所有日期转换为浮点数。
  4. 最后将以下自定义格式应用于单元格:dd/mm/yyyy hh:mm:ss

结果是文件中的每个日期现在都被正确地格式化为英国日期格式。