我正在尝试解析一串格式
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设备上运行。如何将此字符串解析为日期?
答案 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();
}