无法将日期显示为yyyy-MM-dd';T';HH:mm:ss:SSS-Java
当我尝试转换以下字符串时,我收到以下错误。我希望日期的格式为无法将日期显示为yyyy-MM-dd';T';HH:mm:ss:SSS-Java,java,spring,date,datetime,feign,Java,Spring,Date,Datetime,Feign,当我尝试转换以下字符串时,我收到以下错误。我希望日期的格式为yyyy-MM-dd'T'HH:MM:ss:SSS,但日期似乎显示为Sun-Mar 01 23:00:01 GMT 2020 String FULL_ISO_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS"; SimpleDateFormat formatter = new SimpleDateFormat(FULL_ISO_DATE_FORMAT); Date from = f
yyyy-MM-dd'T'HH:MM:ss:SSS
,但日期似乎显示为Sun-Mar 01 23:00:01 GMT 2020
String FULL_ISO_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS";
SimpleDateFormat formatter = new SimpleDateFormat(FULL_ISO_DATE_FORMAT);
Date from = formatter.parse("2020-03-01T23:00:01.000");
错误
任何帮助都将不胜感激。我需要使用Date对象,因为Im查询的构造函数正在使用Date对象。理想情况下,我希望使用LocalDateTime,但我不能。使用java-8中的,并停止使用遗留的Date
类
String FULL_ISO_DATE_FORMAT = DateTimeFormatter. ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
LocalDateTime dateTime = LocalDateTime.now();
dateTime.format(FULL_ISO_DATE_FORMAT);
请不要使用旧类
Date
和SimpleDateFormat
。使用更健壮、设计更好的新api
您可以执行以下相同的操作:
DateTimeFormatter formatter=DateTimeFormatter.of模式(“yyyy-MM-dd'T'HH:MM:ss.SSS”);
LocalDateTime日期=LocalDateTime.parse(“2020-03-01T23:00:01.000”,格式化程序);
请记住,您可以将其转换为日期
,以实现如下兼容性:
Date legacyDate=Date.from(Date.atZone(ZoneId.systemDefault()).toInstant());
我必须使用Date对象,构造函数正在使用Date。当我尝试使用LocalDateTime时,它会在类中出现不匹配错误。您可以通过指向精确的problem@KahunaDub我编辑了我的答案,以展示如何将LocalDateTime
转换为旧的日期。这样你就有了兼容性。你说当你“试图转换下面的字符串”时出现了错误,但是你没有指定字符串;您只显示解析模式和错误消息。从错误消息判断,我认为您试图解析的字符串实际上是Sun Mar 01 23:00:01 GMT 2020
,这显然不起作用。在请求处理过程的前面寻找一个步骤,其中使用toString()
方法将Date
实例转换为String
。这可能是某个地方的隐式调用。我建议您不要使用SimpleDateFormat
和Date
。这些类设计得很糟糕,而且早已过时,其中前者尤其令人讨厌。相反,只需使用LocalDateTime
from。你是在问不可能的问题。日期
没有格式(如不能有格式)。当您看到Sun Mar 01 23:00:01 GMT 2020
时,您看到的是打印时隐式调用其toString
方法的结果。
String FULL_ISO_DATE_FORMAT = DateTimeFormatter. ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
LocalDateTime dateTime = LocalDateTime.now();
dateTime.format(FULL_ISO_DATE_FORMAT);