最佳CSV时间跨度(时间差)格式是什么?

3
这个问题和最佳CSV / Excel时间戳格式?非常类似:
我正在编写一个CSV文件。我需要写入至少精确到秒的时间跨度(也称为时间差),最好是毫秒级别。什么是在CSV文件中时间戳的最佳格式,以便像Excel这样的程序可以准确且不含糊地解析,并且用户干预最小?
最好使用一种格式,即使它跨越多天,人类也可以轻松解析,例如,使用265:00:00代替某些人可以在头脑中进行计算的11天。
我应该补充说明,我在Excel之外生成CSV,因此这不是关于从Excel获取数据或在Excel中格式化数据,而是如何格式化普通CSV文件,以便Excel和人类都能理解时间跨度值。
2个回答

1
对于任意天数,问题不在于创建格式,而在于一旦创建后将.csv读回Excel。例如,如果一个单元格包含:
134.45632176823

其作为天/时间的值是:

134天,10小时,57分钟,6秒,201毫秒

即使您可以将单元格格式化为显示:

134 10:57:06.201

然后将文件保存为.csv,重新打开文件后,Excel会将该值解释为字符串而不是天/时间(人类可以轻松解释格式)

编辑#1:

如果您在单元格中输入1.23456789并将其格式化为d hh:mm:ss.000,则显示为:

1 05:37:46.666

如果您将文件保存为.csv并使用NotePad打开.csv,则会看到格式化后的文本。但是,如果您使用Excel重新打开.csv,则会发现一个文本单元格,而不是以天/时间格式化的数字单元格。

Excel不会对包含标准日期(例如1/25/2014)的单元格产生此问题。


134.45632176823 的问题在于人类无法理解它。我正在寻找一些应用程序可以生成的东西,Excel 不会将其解释为字符串——如果可能的话。 - Joachim Breitner
如果天数小于或等于31天,则可以使用自定义格式:d hh.mm.ss.000。 - Gary's Student
Excel能够在CSV文件中检测到这种格式吗?请注意,这个问题不是关于Excel内部的格式。 - Joachim Breitner
什么是“无格式”?我正在自己生成文件,我需要写一些东西 - Joachim Breitner
我是指使用类似于“0.00000000000”的NumberFormat - Gary's Student
显示剩余2条评论

0

我在Excel中尝试过这个

"y/m/d h:mm:ss.000"

对于1/1/2007 00:00:00和11/1/2014 10:14:02.016之间的差异,它返回了07/1/10 10:14:02.016


那么如果我在CSV文件中放置一个该格式的字符串并使用Excel打开它,它会被识别为时间差吗?我本来以为它会被解析为日期... - Joachim Breitner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接