7

我使用命令行选项 -f %Y-%m-%d 甚至 %d-%b-%y 格式化日期

但是每个日期都比我输入的日期提前了四年零一天

例如,01.06.2012在没有 -f 选项的情况下解析后的日期与2016-06-02 玩弄 -f 给出相同的结果

是什么原因?是否有任何解决方法,除了硬编码和减去这 4 年零 1 天?

我正在使用 xls2csv(由 VBWagner 提供,在 debian 中附带 catdoc 包),切换到另一个解析器可能是非常昂贵的选择

4

2 回答 2

3

Tools xls2csv是一个使用Spreadsheet::ParseExcel库的 Perl 应用程序。

基于此类库文档已知问题之一是:

  • 如果Excel 具有指定格式等于短日期区域设置的系统默认值的日期字段,则Excel 不存储 format,而是默认为系统相关的内部格式。在这些情况下,ParseExcel 使用日期格式“yyyy-mm-dd”。

因此,由于上述问题,您可能使用不包含日期格式的 Excel 文件进行操作。

于 2012-06-22T17:26:43.793 回答
3

这是一个已知的错误。补丁可在 https://www.wagner.pp.ru/cgi-bin/cvstrac/catdoc/tktview?tn=14,4

有用。顺便说一句,有两个名为 xls2csv 的程序,我们谈论的是 catdoc 包中的一个,而不是 Perl 程序。

于 2012-09-25T15:06:04.807 回答