При попытке преобразовать формат даты я получаю исключение: неразборчивая дата и не знаю, как решить эту проблему.
Я получаю строку, которая представляет дату события и хотела бы отобразить эту дату в другом формате в графическом интерфейсе.
Я пытался сделать следующее:
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();
пустышка. Я хотел бы получить строку даты в следующем формате:
дд.мм.гггг ЧЧ: мм: сс
и пример входной строки следующий:
2010-01-04 01:32:27 UTC
Кто-нибудь знает, как преобразовать приведенную выше примерную дату (String) в строковый формат дд.мм.гггг ЧЧ: мм: сс?
Спасибо!
Редактировать: я исправил неправильный формат даты ввода, но все равно он не работает. Выше - вставленный метод, а ниже - изображение экрана из сеанса отладки.
альтернативный текст http://img683.imageshack.us/img683/193/dateproblem.png
# * Обновление 1033 *
Я побежал
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";
}
}
Но все же я бы предпочел преобразовать исходный ввод без удаления часового пояса.
Этот код написан для телефона Android с использованием JDK 1.6.