在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();

}

但是我遇到了“解析错误”。我无法更改日期的输入格式,也无法将时区设置为静态值,因为此代码将在Andorid设备上运行。如何将这个字符串解析为date?

回答:

使用java.time框架(JSR 310),您可以执行以下操作:

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 [澳大利亚/悉尼]

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

以上是 在Java中使用AEDT和AEST时区解析日期 的全部内容, 来源链接: utcz.com/qa/414473.html

回到顶部