在 Java 中以微秒解析时间

Kan*_* Li 5 java

我在解析 Java 格式的时间字符串时遇到问题2013-01-09 09:15:03.000000。在我的数据中,最后三位数字始终为 0(意味着输入字符串只有毫秒精度),因此我将此格式传递给 SimpleDateFormat:

formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS'000'");
Run Code Online (Sandbox Code Playgroud)

formatter.parse("2013-01-09 09:15:02.500000");抛出异常:

Unparseable date: "2013-01-09 09:15:02.500000"
    at java.text.DateFormat.parse(DateFormat.java:357)
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何正确地做到这一点?我可以通过使用 formatyyyy-MM-dd HH:mm:ss.SSS和 usingsubstring来摆脱最后三位数字来解决,但这真的很麻烦。

编辑:谁能解释为什么格式字符串yyyy-MM-dd HH:mm:ss.SSS'000'不能用于解析时间"2013-01-09 09:15:02.500000"

Kan*_* Li 2

我自己已经想通了。仅供参考,Apache commons'FastDateFormat似乎接受该SSS000格式并正确解析时间。