我编写了一个通用的 CSV 文件阅读器,我试图用它来读取一些预先生成的 CSV 数据文件。这些文件包含以下格式的价格信息和时间戳
lTid,cDealable,NAME,TIMESTAMP,BID,ASK <--- The header
1705852073,D,EUR/USD,2011-10-02 17:00:16.123000000,1.334400,1.334600
在我的代码中,我假设价格是数字,文本是字符串,日期是 Java 日期(它有点复杂,但你明白了)。对于日期,代码允许您传入解析模板。到目前为止,这一切正常,但我对如何处理这些文件有点困惑(我无法控制格式,而且它们非常大)。如您所见,日期有表格
2011-10-02 17:00:16.123000000
六个尾随零始终为零(即文件时间精度低至毫秒)
理想情况下,我可以使用“ yyyy-MM-dd HH:mm:ss.SSS
”模式,但遗憾的是 SimpleDateFormat 中的解析逻辑将“ .123000000
”解释为123,000,000
毫秒而不是 123 毫秒。
显然,如果这不是通用阅读器,我可以简单地截断日期字符串,但我没有那个选择。有没有办法让 parse 语句只使用 ms 数字并忽略尾随零?