在嘗試轉換日期格式時,我得到一個異常:無法解析日期,不知道如何解決此問題。Java:可解析日期異常
我收到一個字符串,它表示一個事件日期,並希望在GUI中以不同的格式顯示此日期。
什麼,我試圖做的是以下幾點:
private String modifyDateLayout(String inputDate){
try {
//inputDate = "2010-01-04 01:32:27 UTC";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z").parse(inputDate);
return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(date);
} catch (ParseException e) {
e.printStackTrace();
return "15.01.2010";
}
}
反正行
String modifiedDateString = originalDate.toString();
是假的。我想獲得在以下格式的日期字符串:
DD.MM.YYYY HH:MM:SS
和輸入字符串例子如下:
2010-01-04 01:32:27 UTC
有沒有人知道如何將上面的例子date(String)轉換成字符串格式dd.MM.yyyy HH:mm:ss?
謝謝!
編輯:我修正了錯誤的輸入日期格式,但仍然無效。上面是粘貼的方法,下面是調試會話的屏幕圖像。
alt text http://img683.imageshack.us/img683/193/dateproblem.png
#UPDATE 我跑
String[] timezones = TimeZone.getAvailableIDs();
並沒有UTC字符串在數組中。這是一個奇怪的問題。
我做了一個骯髒的黑客的作品:
private String modifyDateLayout(String inputDate){
try {
inputDate = inputDate.replace(" UTC", "");
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(inputDate);
return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(date);
} catch (ParseException e) {
e.printStackTrace();
return "15.01.2010";
}
}
但我仍寧願改造原有的輸入而不切割時區了。
此代碼是爲使用JDK 1.6的Android手機編寫的。
我知道這是一個很久以前的線程,但要澄清關於「UTC」處於日期格式時解析異常的疑問。該代碼在Android中被破解。 [Android bug報告](http://code.google.com/p/android/issues/detail?id=14963) – Creniale 2011-04-29 04:01:21