【发布时间】:2021-09-13 20:26:03
【问题描述】:
我对 Java 很陌生。
我正在从 oracle db 中获取此日期 1995-01-28T17:02:12.936000-0500,现在我想将其转换为 yyyy-MM-dd HH:mm:ss 格式。我试过下面的方法
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
Date c=sdf.parse("1995-01-28T17:02:12.936000-0500");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf1.format(c));
我的输出低于输出
1995-2-28 17:17:48
您可以看到 17:02:12 已更改为 17:17:48。我该如何解决这个问题?
【问题讨论】:
-
我打算将该日期和时间用作字符串
-
936000ms 是 15 分钟,很确定差异来自于这些 -
对不起,如果不明白。但这是否意味着总时间是正确的?
-
我对此表示怀疑:我假设您检索到的日期结束时的 936000 应该被理解为 936 毫秒(最后 3 个零是为了提高精度),但 SimpleDateFormat 没有任何任何比毫秒更精确的格式。看看是否可以更改检索日期的格式
-
您正在使用糟糕的日期时间类,这些类在几年前被 JSR 310 中定义的现代 java.time 类所取代。
标签: java datetime parsing simpledateformat