java SimpleDateFormat.Parse

标签 java datetime simpledateformat

我编写了一个通用的 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 毫秒。

很明显,如果这不是通用阅读器,我可以简单地截断日期字符串,但我没有那个选择。有没有办法让解析语句只使用 ms 数字并忽略尾随零?

最佳答案

重复 Custom date format cannot be parsed. (Java)

结论是:SimpleDateFormat 不支持微秒,因此必须编写自定义解析器。

关于java SimpleDateFormat.Parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10756865/

相关文章:

java - 简单的日期格式解析 2k11 类似的值,应该抛出异常

java - 如何从java读取XML节点中的空白元素

用户的 PHP/MYSQL 日期时间范围重叠

c# - 从给定的时间戳字符串中查找时区和时间

python - 从日期时间对象创建 64 位值

Java 日期格式化 ParseException

java - 在java中映射2枚举

java - oracle中使用hibernate自动增量列

java - Vaadin Spring Boot 应用程序中的 Node.js 错误

java - 为什么有人需要线程安全的 SimpleDateFormat 对象?