用java中的AEDT和AEST时区分析日期



我正在尝试解析格式的字符串

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〔澳大利亚/悉尼〕

虽然我不确定为什么选择悉尼而不是墨尔本。

相关内容

  • 没有找到相关文章

最新更新