我正在尝试提出SimpleDateFormat
模式来解析和格式化 JDBC 时间戳,特别是以下格式的日期yyyy-mm-dd hh:mm:ss.fffffffff
,其中ffffffffff
表示纳秒。
不幸的是new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS000000")
不起作用,抛出以下异常:
java.text.ParseException: Format.parseObject(String) failed
这完全可以使用 SimpleDateFormat,还是我必须创建 java.text.DateFormat 的自定义子类来处理这种情况?请注意,这不是关于如何yyyy-mm-dd hh:mm:ss.fffffffff
在 Java 中解析字符串的问题,我对声明性方法感兴趣,即 SimpleDateFormat 模式,它不需要对输入字符串进行额外修改。
示例:
我希望输入2012-02-05 17:00:34.427000000
被解析为 java.util.Date ,其中毫秒部分是427
。
以下是我迄今为止尝试过的格式列表,但由于各种原因,它们都失败了:
new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSS000000")
-java.text.ParseException: Format.parseObject(String) failed
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSSSSS", Locale.US)
和-都new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US)
被解析为Fri Feb 10 15:37:14而不是预期的Sun Feb 05 17:00:34。( 427000000的纳秒部分被视为毫秒,即使只指定了 SSS)