使用Java中的AEDT和AEST时区解析日期 [英] Parse date with AEDT and AEST time zone in java
本文介绍了使用Java中的AEDT和AEST时区解析日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试解析一串格式
I am trying to parse a string of format
Thu Apr 07 11:45:28 AEST 2016
进入日期对象。我的代码如下所示:
into date object. My code looks like following:
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设备上运行。如何将此字符串解析为日期?
But I am getting a 'parse error'. I cannot change the input format of the date and I also cannot set my timezone to a static value as this code is to be run on andorid device. How can I parse this string into date ?
推荐答案
使用 java.time 框架( JSR 310 ),你可以这样做:
Using the java.time framework (JSR 310), you can do:
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 [澳大利亚/悉尼]
2014-02-01T15:00:19+11:00[Australia/Sydney]
虽然为什么选择悉尼而不是墨尔本我不确定。
Though why it picks Sydney instead of Melbourne I am not sure.
这篇关于使用Java中的AEDT和AEST时区解析日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文