1
12
不幸的是,simpledateformat中使用的模式具有不同的含义,这取决于它是用作解析器还是格式化程序。作为一个格式化程序,您的模式按预期执行,输出将以毫秒值结尾,毫秒值格式为三位数字,后跟三个0字符,例如: 2010年1月25日-14.17.47.307000 但是,作为解析器,“sss”模式将匹配任意数目的数字,并将上述示例解析为307000 ms。解析ms字段后,解析器仍将查找“000”子字符串,并且会异常失败,因为您已经到达输入字符串的末尾,而没有满足模式的要求。 由于simpledateformat中的μs值没有模式,因此在将其输入simpledateformat之前,必须编写自己的包装器来除去最后三个0字符的输入字符串。 |
2
3
除了jarnbjo的答案之外,如果需要微秒,您还可以使用java.sql.timestamp:
|
3
1
DR
使用JavaTimes您正在使用麻烦的旧日期时间类,这些类现在是遗留的,由java.time类取代。 这些老班只限于跟踪 milliseconds ,小数点后三位。现代java.time类决心 nanoseconds ,用于 九 小数位数。
国际标准化组织8601提示:不要发明自己的格式来以文本形式表示日期时间值,而要遵循标准 ISO 8601 格式。
默认情况下,java.time类使用标准格式。您可以在上面的输出中看到这种格式。这个
关于JavaTimes
这个
java.time
框架是在Java 8和之后构建的。这些阶级取代了麻烦的旧阶级。
legacy
日期时间类,如
这个 Joda-Time 项目,现在 maintenance mode ,建议迁移到 Java.时间 课程。 要了解更多信息,请参阅 Oracle Tutorial . 以及搜索堆栈溢出以获得许多示例和解释。规格为 JSR 310 . 在哪里获取java.time类?
这个
ThreeTen-Extra
Project使用其他类扩展java.time。这个项目是将来可能添加到java.time的一个试验场。您可以在这里找到一些有用的类,例如
|
4
0
添加一个
|