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 的回答后,我为我的实例找到了解决方法。感谢您的想法。
所以要解决我的问题:
- 将日期和时间的区域设置修改为美国。
- 在 excel 中正常打开文件。
- 选择了相关列并将单元格格式设置为文本。这将文件中的所有日期转换为浮点数。
- 最后将以下自定义格式应用于单元格:
dd/mm/yyyy hh:mm:ss
结果是文件中的每个日期现在都被正确地格式化为英国日期格式。
我有一个 .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 的回答后,我为我的实例找到了解决方法。感谢您的想法。
所以要解决我的问题:
- 将日期和时间的区域设置修改为美国。
- 在 excel 中正常打开文件。
- 选择了相关列并将单元格格式设置为文本。这将文件中的所有日期转换为浮点数。
- 最后将以下自定义格式应用于单元格:
dd/mm/yyyy hh:mm:ss
结果是文件中的每个日期现在都被正确地格式化为英国日期格式。