CSV文件中的日期格式奇怪的行为

问题描述 投票:-1回答:3

我有一个使用一些传统软件生成的.csv文件。无法查看代码内部生成csv文件的方式或内容。

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

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

在notepad(原始数据)中查看文件,我们得到一个列表,如下所示:

"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文件中的前两列。

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

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

Formatting 1

还有这个:

Formatting 2

我可以看到,当日值从12切换到13时,Excel会变得混乱。如果我然后尝试使用以下单元格格式设置更改格式以解决问题:

Column Formatting

当日期小于13时,我会在列中显示以下内容:

Date Format 3

当日期大于或等于13时,以下格式:

Date Format 4

任何帮助都会非常感激,因为我现在完全没有想法。

注意:我还尝试将.csv文件的内容复制到另一个文件中,但新文件中也会出现相同的情况。

excel csv date-formatting
3个回答
1
投票

此问题与Excel如何解释日期格式(M / D / Y与D / M / Y)有关。您的系统似乎是为D / M / Y日期格式设置的。您将无法在Excel中找到该设置,因为它是从您的系统设置中获取的。转到语言设置并添加美国英语。然后将其设置为默认值并尝试再次打开CSV文件。或者,您可以将csv文件内容粘贴到新工作表中,并使用“文本到列”功能,该功能可让您指定日期格式。


1
投票

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

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

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

并应用所需的格式:

enter image description here


0
投票

在阅读了@ Gary的学生和@hughg的答案之后,我找到了一个解决我的实例的工作。谢谢你的想法。

所以要解决我的问题:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.