我正在尝试解析一个格式字符串
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 设备上运行。如何将此字符串解析为日期?
最佳答案
使用 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[Australia/Sydney]
虽然我不确定为什么它选择悉尼而不是墨尔本。
关于java - 在java中用AEDT和AEST时区解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36473928/