我想转换这个日期“Mon Feb 20 09:45:00 UTC 2023”,下面这段代码是我的做法:
public static LocalDateTime convertFormatDateLocalDateTime(String startTime) {
DateTimeFormatter input = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy");
input.withZone(ZoneOffset.UTC);
DateTimeFormatter output = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
output.withZone(ZoneOffset.UTC);
LocalDateTime d2 = null;
if(startTime!=null) {
LocalDateTime d = LocalDateTime.parse(startTime,input);
System.out.println(d);
String dtStr = output.format(d);
d2 = LocalDateTime.parse(dtStr, output);
System.out.println(d2);
}
return d2;
}
但是我得到了这个错误: java.time.format.DateTimeParseException:无法在索引 0 处解析文本“Mon Feb 20 09:45:00 UTC 2023”
我想使用任何方法从“EEE MMM dd HH:mm:ss z yyyy”转换为这种“yyyy-MM-dd'T'HH:mm:ss”格式,只要它能正常工作。提前致谢。
终于可以这样运行了:
public static LocalDateTime convertFormatDateLocalDateTime(String startTime) {
DateTimeFormatter input = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
DateTimeFormatter output = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
LocalDateTime d2 = null;
if(startTime!=null) {
LocalDateTime d = LocalDateTime.parse(startTime,input);
System.out.println(d);
String dtStr = output.format(d);
d2 = LocalDateTime.parse(dtStr, output);
System.out.println(d2);
}
return d2;
}
我用过 Locale.ENGLISH 但它也适用于 Locale.US。 非常感谢你们。