如何将Excel中的日期转换为ISO 8601格式

如何将Excel中的日期转换为ISO 8601格式,excel,date,csv,Excel,Date,Csv,我正在尝试将日期格式保存为YYYY-MM-DD,例如2014-09-01,作为CSV文件,但当我这样做时,该格式会恢复为M/D/YYYY格式 我尝试在Excel中将日期转换为字符串,但每次打开CSV文件时,它都会恢复为M/D/YYYY格式。我需要ISO8601日期格式保存在CSV文件中。我该怎么做呢?您可以直接跳到核心选项:更改计算机的“区域和语言”设置以使用“yyy-MM-dd”短日期格式。我相信您可能已经在.csv文件中创建了正确的格式 但是Excel会自动将其强制转换为您在打开.csv文件

我正在尝试将日期格式保存为YYYY-MM-DD,例如2014-09-01,作为CSV文件,但当我这样做时,该格式会恢复为M/D/YYYY格式


我尝试在Excel中将日期转换为字符串,但每次打开CSV文件时,它都会恢复为M/D/YYYY格式。我需要ISO8601日期格式保存在CSV文件中。我该怎么做呢?

您可以直接跳到核心选项:更改计算机的“区域和语言”设置以使用“yyy-MM-dd”短日期格式。

我相信您可能已经在.csv文件中创建了正确的格式

但是Excel会自动将其强制转换为您在打开.csv文件时提到的格式的日期值。解决方案可能是导入.csv文件而不是打开它,在从文本获取外部数据的步骤3中,确保在适当的情况下为列数据格式选择文本。

基本功能是:

=TEXT(A1,"yyyy-mm-ddThh:MM:ss")
使用此选项可将Excel日期列转换为单独的ISO8601日期列。接下来,将ISO8601列复制到原始列上(特殊粘贴:仅粘贴值)。 删除计算出的ISO8601列,因为Excel在ISO8601日期时很糟糕,所以这些列中现在有垃圾


您现在有一个已转换的CSV或TSV或诸如此类。只需保存为原始格式,忽略愚蠢的Excel,它抱怨它不是它的原始文件格式,你将如何通过保存为CSV文件“失去”某种程度上,并尝试不去想微软用这个愚蠢的对话框偷走了你的生命时间。

我复制并粘贴了上面的@Dirk Bester公式

=TEXT(A1,”yyyy-mm-ddThh:MM:ss”)
但它不起作用,Excel 2010抱怨高低——也就是说,直到我将引号从某种“智能引号”更改为普通的旧ASCII 0x22引号:

=TEXT(A1,"yyyy-mm-ddThh:MM:ss")

现在它就像一个符咒。仅供参考。

作为非英语用户的注意事项。我花了一段时间才弄明白,格式字符串对您的区域设置/语言环境很敏感。例如,将我的格式设置为德语:

=TEXT(C2;"jjjjMMtt")

(尽管操作系统和Excel设置为英语。)

您可以设置单元格,例如:

右键单击单元格>单元格格式>类别>自定义>类型>写入:

aaaa-mm-jjThh:mm:ss (french format here)
yyyy-mm-ddThh:MM:ss (english format)

对不起,我的英语太差了。

FWIW,在16世纪日期的Excel中,上述内容都不适用于我,例如1558年8月26日的26-08-1558。因此,为了将其转换为ISO日期,我使用:

=RIGHT(D2|4)&"-"&MID(D2|4|2)&"-"&LEFT(D2|2)

奇怪,想知道那些是怎么滑进去的。智能引号真的很蠢。我认为你应该用=TEXT(A2;“jjjjMMtt”)来代替,或者你用分钟来代替月。是的,M/D/Y格式是非常无用的——你不能按日期排序,而且违反了我们在一年级学到的东西——数字的最高有效数字在左边,最低有效数字在右边(百/十/单位,记住)。所以千年(即数千年)显然比几百、十、年单位、十个月、月单位、十天、天单位更重要。不知道为什么在21世纪人们仍然使用M/D/Y——这应该被禁止。在记事本中打开CSV文件来测试这一理论。Excel太聪明了,有时它本身不好。而且,在毫秒内它是:yyyy-mm ddThh:mm:ss.000I更愿意使用此方法,以使时间和日期在Excel中保持活动状态(而不仅仅是文本字符串),但我不知道如何添加时区日期,例如:
2014-01-01T01:00:00+0800
指示相对于格林尼治标准时间+08小时的西澳大利亚时区。从格式为21-6-2019的csv开始。确保您的区域设置相同。双击csv以在Excel中打开(不要使用数据/来自文本,这不起作用。不要问我为什么)。Excel会将日期识别为日期。现在选择每个日期列,并将格式日期更改为2019-06-21。Excel 2016。