使用Java中的AEDT时区解析日期

时间:2014-08-25 10:39:36

标签: java android parsing date

我正在尝试解析一串格式

Sat Feb 01 15:00:19 AEDT 2014

进入日期对象。我的代码如下:

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设备上运行。如何将此字符串解析为日期?

1 个答案:

答案 0 :(得分:1)

“AEDT”是一个4个字母的时区,不受支持。这导致例外。 只能解析valid timezones

您可以使用(GMT + 11)代替AEDT,如下所示:

    SimpleDateFormat parserSDF = new SimpleDateFormat("E MMM dd HH:mm:ss yyyy");
    parserSDF.setTimeZone(TimeZone.getTimeZone("GMT+11"));
    try{
        Date time = parserSDF.parse("Sat Feb 01 15:00:19 2014");
    }catch(Exception e){
        Toast.makeText(this, "exception: "+e.toString(), Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }