java.time.format.DateTimeParseException:Text';2014年12月30日星期二14:28:38;无法在索引0处分析
在我正在处理的一个web应用程序上,我以java.time.format.DateTimeParseException:Text';2014年12月30日星期二14:28:38;无法在索引0处分析,java,string,parsing,date,Java,String,Parsing,Date,在我正在处理的一个web应用程序上,我以Tue Dec 30 14:28:38 CET 2014等格式检索日期,格式为String。我想将其解析为Java8LocalDateTime。以下是我尝试的总结: String string = "Tue Dec 30 14:28:38 CET 2014"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy"); LocalDat
Tue Dec 30 14:28:38 CET 2014
等格式检索日期,格式为String
。我想将其解析为Java8LocalDateTime
。以下是我尝试的总结:
String string = "Tue Dec 30 14:28:38 CET 2014";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");
LocalDateTime localDateTime = LocalDateTime.parse(string, formatter);
但是,它会引发以下异常:
java.time.format.DateTimeParseException:无法在索引0处分析文本“2014年12月30日星期二14:28:38 CET”
这是如何造成的,我如何解决它?对于当前语言,日期可能无效。月份和日期缩写从一个
区域设置更改为另一个
检查以下示例:
当使用Locale.ENGLISH
解析字符串时,这是正常的,但不使用Locale.GERMAN
(应该是“Di Dez 30 14:28:38 CET 2014”
)
如果未指定区域设置
,则使用默认设置。使用SimpleDataFormat
相同错误…java.text.ParseException:不可解析日期:“Tue Dec 30 14:52:47 CET 2014”使用此模式EEE MMM dd HH:mm:ss z yyyy
可能有效
public static void main (String[] args) {
String string = "Tue Dec 30 14:28:38 CET 2014";
try {
new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(string);
System.out.println("OK ENGLISH");
} catch (Exception ex) {
System.out.println("KO ENGLISH");
}
try {
new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.GERMAN).parse(string);
System.out.println("OK GERMAN");
} catch (Exception ex) {
System.out.println("KO GERMAN");
}
}