【发布时间】:2011-01-01 19:49:24
【问题描述】:
在尝试转换日期格式时出现异常:无法解析的日期并且不知道如何解决此问题。
我收到一个代表事件日期的字符串,并希望在 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
有谁知道如何将上面的示例日期(字符串)转换为字符串格式dd.MM.yyyy HH:mm:ss?
谢谢!
编辑:我修复了错误的输入日期格式,但仍然无法正常工作。上面是粘贴的方法,下面是调试会话的屏幕图像。
alt text http://img683.imageshack.us/img683/193/dateproblem.png
#更新 我跑了
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 report