CSV/Excel的最佳时间戳格式?

102 csv excel formatting timestamp

我正在写一个CSV文件.我需要编写至少精确到秒的时间戳,最好是毫秒.CSV文件中时间戳的最佳格式是什么,以便Excel可以用最少的用户干预准确无误地解析它们?

Joe*_*Joe 93

对于第二精度,yyyy-MM-dd HH:mm:ss应该可以解决问题.

我相信Excel在几分之一秒内不是很好(在与COM对象IIRC交互时丢失它们).

  • 对于任何使用Ruby的[`strftime`](http://apidock.com/ruby/DateTime/strftime)的人来说,等效的参数字符串是"%Y-%m-%d%H:%M:%S" (13认同)
  • @nickf - `.CSV` 只是一个文本文件。您可以将时区或您写入文件的任何其他内容显示为逗号分隔的纯文本;重要的是哪个应用程序将*阅读*它,以及**那个**应用程序如何期待文本。[这里的文档](//loc.gov/preservation/digital/formats/fdd/fdd000323.shtml) 来自国会图书馆的 CSV 标准。没有规定的方法来专门存储日期。还有 [RFC-4180](//ietf.org/rfc/rfc4180.txt) 和 [CSV-1203](//scribd.com/document/202127594/) //creativyst.com/Doc/Articles/CSV/CSV01 .htm)。 (2认同)
  • 在带有 strftime() 的 python 中,格式也为 `"%Y-%m-%d %H:%M:%S"` - 与 Ruby 相同。 (2认同)

Joh*_*n Y 17

早先使用"yyyy-MM-dd HH:mm:ss"的建议很好,但我相信Excel的时间分辨率要比这更精细.我发现这篇文章相当可靠(按照线程,你会看到很多算术和Excel实验),如果它是正确的,你将有你的毫秒.您可以在最后添加小数位,即"yyyy-mm-dd hh:mm:ss.000".

您应该知道,Excel可能不一定格式化数据(没有人为干预),您将看到所有这些精度.在我工作的计算机上,当我设置一个带有"yyyy-mm-dd hh:mm:ss.000"数据的CSV(手工使用记事本)时,我在单元格中得到"mm:ss.0"并且"m/d/yyyy hh:mm:ss AM/PM"在公式栏中.

为了在没有人为干预的情况下在单元格中传达的最大信息[1],您可能希望将时间戳分为日期部分和时间部分,时间部分仅分配到第二个.在我看来,Excel希望在任何给定的单元格中最多给你三个可见的"级别"(其中几分之一是他们自己的级别),并且你想要七:年,月,日,小时,分钟,秒,和一小部分.

或者,如果您不需要时间戳是人类可读的,但您希望它尽可能准确,您可能更喜欢存储一个大数字(在内部,Excel只使用天数,包括分数天,自"epoch"日期).


[1]即数字信息.如果你想查看尽可能多的信息但不关心用它进行计算,你可以编制一些Excel肯定会解析为字符串的格式,从而不用了; 例如"yyyymmdd.hhmmss.000".


小智 13

"yyyy-MM-dd hh:mm:ss.000"格式不适用于所有语言环境.对于一些人(至少丹麦人),"yyyy-MM-dd hh:mm:ss,000"将更好地发挥作用.

  • 奇怪的是,当毫秒部分为000时,Excel 2010不会检测日期.任何其他都可以. (2认同)