我正在尝试提出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) failednew 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)