【问题标题】:How to format a datetime so that Excel will understand it?如何格式化日期时间以便 Excel 能够理解它?
【发布时间】:2010-05-10 06:52:05
【问题描述】:

我有一个输出 CSV 文件的脚本。我应该如何格式化日期或日期+时间字段,以便 Excel 将该字段正确解析为日期?

PS:我也想保持时区信息不变。

【问题讨论】:

  • CSV 不是一个很好定义的格式,而且在国际环境中,它们的解释取决于 pc 的区域设置(dmy vs mdy)。甚至逗号也可以用分号代替。我尽可能避免这种“非格式”。
  • 我从未在自称是 CSV 的文件中看到“逗号替换为分号”。事实上,我不记得上次看到不遵循 RFC 4180 (tools.ietf.org/html/rfc4180>) 的 CSV 文件是什么时候了。唯一的问题是如何表示丰富的对象,如日期时间。

标签: excel datetime csv


【解决方案1】:

Excel 的日期格式不包含任何有关时区的信息。我会将时区导出为单独的列,可能作为与 GMT 的偏移量,例如 5 或 -2。我个人更喜欢明确的 yyyy-mm-dd 日期格式。

【讨论】:

  • +5 或 -2 到格林威治标准时间 (GMT),例如,东部标准时间是 -5 到 GMT,而巴黎是 +1。
  • 我就是这个意思,怎么会有人知道?
  • 由于在您的问题中您说您希望保持时区信息不变,我假设此信息存在于您的源数据中。您的时区数据采用什么格式?
【解决方案2】:

我会使用“dd/mm/yyyy hh:nn:ss”格式。我以前在 Excel 理解这种格式方面从来没有遇到过任何问题。

【讨论】:

  • 时区必须作为单独的列添加。
  • 这和“dd/MM/yyyy hh:mm:ss”格式一样吗? Excel 无法从 CSV 文件中正确读取此格式。它仅以美国格式 (mm/dd/yyyy) 读取日期,而与您的区域设置无关。据我所知,这是 Excel 中的一个错误。
  • @SDK 这是不正确的。至少对于 Mac 版本...我刚刚尝试导入以下 csv 文件“11/01/2013 13:00:00”; 10 和 excel 将其解析为 1 月 11 日 ...
  • 每次您选择错误的日期格式时,耶稣都会用鱼叉捕食小鲸鱼。
猜你喜欢
  • 2017-03-22
  • 2012-06-03
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多