在尝试转换日期格式时,我得到一个异常:无法解析日期,不知道如何解决此问题。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