如何转换 CSV 的时间戳格式?

如何转换 CSV 的时间戳格式?

我正在尝试将返回时间戳的 CSV 文件转换为hh:mm:s.mmm添加hhmmssmmm的 s 表示秒。

例如,我提取了一个 CSV 文件,其中的时间显示为,10:15:7.123但我想将其转换为101507123。关于如何在 Excel 中执行此操作,您有什么想法吗?

除非我实在无法在这里找到答案,否则我不想联系我们的程序员。

答案1

我使用的是 Excel 2209 版本,这可能会产生影响,尽管如果相当接近的话可能不会产生影响。

当我使用示例字符串创建 CSV 文件并导入时,Excel 将其识别为时间并正确获取到它是07分钟,而不是某个混乱的版本。

因此,使用字符串格式化列(嗯,接近,正如你给出的101507.Jan那样hhmmss.000)会给出所需的结果。

对于这一点,字符串中的前导零不是问题。甚至00:00:01.000顺利00:00:00.001通过。Excel 会注意分隔:符,以确定它是时间以及如何“填充”值。因此,这方面不会出现问题,也不会在任何版本中出现,至少我还没有遇到过。

10奇怪的是,它接受一个明确包含小时 ( ) 和足够字符的值,:因此毫无疑问其中一部分是“15 分钟,7 秒”,然后在打开时将其格式化为mm:ss.0并附加“am/pm”,而这根本不是它自己的自定义格式字符串。所以说“毫无意义”...

所以基本上,只需像我一样打开 CSV File|Open,看看列是否按时间格式化。如果是这样,则将格式更改为您想要的格式。

要自动执行此操作,请找到一种方法来了解 CSV 的文件名并使用 VBA 打开它,然后格式化其列。您需要有一个专用的文件,因为 CSV 文件中没有存储宏。然后关闭带有宏的文件并根据需要在 CSV 文件中工作。

另一种想法是,使用一个带有专门用于此 CSV 文件最终格式的工作表的文件,将一行单元格格式化为 CSV 文件中列所需的格式,然后打开 CSV 文件,选择所有列,复制“模板”文件的行,然后将行的格式(仅)粘贴到 CSV 文件中的列上,这样它们就可以在一个步骤中很好地格式化。关闭带有格式“模板”的文件,然后在打开的 CSV 文件中按您想要的方式工作。

相关内容