如何转换日期 class 以正确解析日期时间?
How do I convert date class to parse date time correctly?
我是 Java 的新手。
我正在从 oracle 数据库中获取此日期 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。我该如何解决这个问题?
从 936000 中删除 000。日期解析器将其视为 936,000 毫秒,即向您的 date/time.
添加 936 秒或大约 15 分钟
像这样尝试。但是使用 java.time 包中的方法。它在许多方面优于 java.util.Date
和支持的过时方法(并且有相当一部分已弃用)。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ");
OffsetDateTime odt = OffsetDateTime.parse("1995-01-28T17:02:12.936000-0500",dtf);
DateTimeFormatter resultFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(odt.format(resultFormat));
版画
1995-01-28 17:02:12
我是 Java 的新手。
我正在从 oracle 数据库中获取此日期 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。我该如何解决这个问题?
从 936000 中删除 000。日期解析器将其视为 936,000 毫秒,即向您的 date/time.
添加 936 秒或大约 15 分钟像这样尝试。但是使用 java.time 包中的方法。它在许多方面优于 java.util.Date
和支持的过时方法(并且有相当一部分已弃用)。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ");
OffsetDateTime odt = OffsetDateTime.parse("1995-01-28T17:02:12.936000-0500",dtf);
DateTimeFormatter resultFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(odt.format(resultFormat));
版画
1995-01-28 17:02:12