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

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

我试图在Excel中将date转换为string,但是每次打开CSV文件时,都会回到M / D / YYYY格式。 我需要将ISO 8601date格式保存为CSV文件。 我怎么去做呢?

基本function是:

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

使用它将您的Exceldate列转换为单独的ISO 8601date列。 接下来,将ISO 8601列复制到原件(仅粘贴特殊值:粘贴值)。 删除已计算的ISO 8601列中现在有垃圾,因为Excel吸收ISO 8601date。

你现在有一个转换CSV或TSV或什么的。 只要保存为原始格式,并忽略愚蠢的Excel抱怨它不是它的本机文件格式,以及如何通过保存为CSV文件以某种方式“失去”,并试图不去想你的生活时间微软偷了与愚蠢的对话。

请注意非英文用户。 我花了一段时间才发现,格式string对区域设置/区域设置很敏感。 例如与我的格式设置为德语:

 =TEXT(C2;"jjjjMMtt") 

(虽然OS和Excel设置为英文。)

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

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

但它不起作用,Excel 2010抱怨高低 – 也就是说,直到我把某些“智能报价”中的引号改为普通的旧ASCII 0x22引号:

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

现在它像一个魅力。 仅供参考。

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

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

但是,Excel将自动强制为打开.csv文件时提到的格式的date值。 解决scheme可能是导入.csv文件而不是将其打开,在获取外部数据的第3步中,从文本中确保在适当的情况下为列数据格式select了文本。

你可以设置一个单元格,例如:

右键单击单元格>单元格格式>分类>自定义>types>写这个:

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

对不起我的英语不好。