我还使用以下资源创建了自己的sdf模式:https : //docs.oracle.com/en/java/javase/13/docs/api/java.base/java/text/SimpleDateFormat.html
不幸
SimpleDateFormat mFormatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
...
private Date getLatestTimeStamp() throws ParseException {
return mFormatter.parse("Mon, 19 Dec 2019 11:32:04 +0000");
}
导致以下错误,而我不明白为什么:
java.text.ParseException: Unparseable date: "Mon, 19 Dec 2019 11:32:04 +0000"
任何帮助都是极好的!
编辑:我正在使用JDK 13
编辑2:
因此,我清理了我的代码,创建了一个新项目,但仍然无法使用:
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String source = "Thu, 19 Dec 2019 11:32:04 +0000";
DateTimeFormatter mFormatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z");
System.out.println(OffsetDateTime.parse(source, mFormatter));
}
}
以下错误信息:
线程“主”中的异常java.time.format.DateTimeParseException:文本'Thu,19 Dec 2019 11:32:04 +0000'无法在java.base / java.time.format.DateTimeFormatter.parseResolved0的索引0处解析(DateTimeFormatter.java:2049)在java.base / java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1951)在java.base / java.time.OffsetDateTime.parse(OffsetDateTime.java:402)在主要。 java.de.taka.main.Main.main(Main.java:15)
流程以退出代码1完成
您应该使用RFC_1123_DATE_TIME格式化程序。
public static void main(String[] args) {
String source = "Thu, 19 Dec 2019 11:32:04 +0000";
DateTimeFormatter mFormatter = DateTimeFormatter.RFC_1123_DATE_TIME;
System.out.println(OffsetDateTime.parse(source, mFormatter));
}
顺便说一句,您的模式很好,您应该添加.withLocale()
。
DateTimeFormatter mFormatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z").withLocale(Locale.US);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句