Trong khi cố gắng chuyển đổi định dạng ngày, tôi nhận được một ngoại lệ: ngày không thể đếm được và không biết cách khắc phục sự cố này.Java: ngoại lệ ngày không thể gắn nhãn
Tôi nhận được một chuỗi đại diện cho ngày sự kiện và muốn hiển thị ngày này ở định dạng khác trong GUI.
Những gì tôi đang cố gắng làm là như sau:
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";
}
}
Dù sao dòng
String modifiedDateString = originalDate.toString();
là giả. Tôi muốn để có được một chuỗi ngày theo định dạng sau:
dd.MM.yyyy HH: mm: ss
và đầu vào Chuỗi ví dụ như sau:
2010-01-04 01:32:27 UTC
Có ai biết cách chuyển đổi ngày ví dụ (Chuỗi) ở trên thành định dạng chuỗi dd.MM.yyyy HH: mm: ss?
Cảm ơn bạn!
Chỉnh sửa: Tôi đã sửa định dạng ngày nhập sai nhưng vẫn không hoạt động. Trên đây là phương pháp được dán và bên dưới là hình ảnh màn hình từ phiên gỡ lỗi.
alt text http://img683.imageshack.us/img683/193/dateproblem.png
#UPDATE Tôi chạy
String[] timezones = TimeZone.getAvailableIDs();
và có UTC String trong mảng. Đó là một vấn đề kỳ lạ.
Tôi đã làm một bẩn hack mà làm việc:
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";
}
}
Nhưng tôi vẫn muốn để chuyển đổi đầu vào gốc mà không cần cắt múi giờ đi.
Mã này được viết cho điện thoại Android sử dụng JDK 1.6.
Tôi biết đây là một chủ đề dài trước đây nhưng để làm rõ những nghi ngờ về ngoại lệ phân tích cú pháp khi "UTC" có định dạng ngày. Mã bị hỏng trong Android. [Báo cáo lỗi Android] (http://code.google.com/p/android/issues/detail?id=14963) – Creniale