我正在尝试解析格式的字符串
Thu Apr 07 11:45:28 AEST 2016
到日期对象。我的代码如下:
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");
try{
Date time = parserSDF.parse("Sat Feb 01 15:00:19 AEDT 2014");
}catch(Exception e){
e.printStackTrace();
}
但我得到了一个"解析错误"。我无法更改日期的输入格式,也无法将时区设置为静态值,因为此代码将在Android设备上运行。如何将此字符串解析为日期?
使用java.time框架(JSR310),您可以执行:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss zzz yyyy");
ZonedDateTime zdt = ZonedDateTime.parse("Sat Feb 01 15:00:19 AEDT 2014", dtf);
System.out.println(zdt);
…打印:
2014-02-01T15:00:19+11:00〔澳大利亚/悉尼〕
虽然我不确定为什么选择悉尼而不是墨尔本。