如何将日期类转换为正确解析日期时间?

问题描述

我对 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。我该如何解决这个问题?

解决方法

试试这个。但是使用 java.time 包中的方法。它在许多方面都优于 Dictionary<string,string> environmentVarsDict = new Dictionary<string,string>(); environmentVarsDict.Add("environmentVar1","myValue1"); environmentVarsDict.Add("environmentVar2","myValue2"); helper.RunCmd("test123","/c",environmentVarsDict); 和已过时的受支持方法(并且相当多的已弃用)。

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));
,

936000 中删除 000。日期解析器将其视为 936,000 毫秒,即为您的日期/时间增加了 936 秒或约 15 分钟。