使用Java中的AEDT和AEST时区解析日期 [英] Parse date with AEDT and AEST time zone in java

查看:945
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆