Tôi nhận được lỗi lạ nhất, khi cố gắng phân tích cú pháp chuỗi dưới dạng lịch. Dường như nó làm hỏng đối tượng Date mà tôi sử dụng để đặt thời gian của lịch kết quả. Lỗi là khá không phù hợp (hoặc tôi không thấy logic trong đó). Bất cứ ai có thể chỉ ra những gì tôi có thể làm sai?Nhận dữ liệu sai khi sử dụng SimpleDateFormat.parse()
public class caltest{
public static final SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss.SSS");
public static void main(String[] args) {
String date1 = "1992-03-11 12:00:12.123";
String date2 = "1993-03-11 12:00:12.123";
String date3 = "1994-03-11 12:00:12.123";
String date4 = "1995-03-11 12:00:12.123";
parseStringAsCalendar(date1);
parseStringAsCalendar(date2);
parseStringAsCalendar(date3);
parseStringAsCalendar(date4);
}
public static String calendarToString(Calendar cal) {
return sdf.format(cal.getTime());
}
public static Calendar parseStringAsCalendar(String s) {
Date time = null;
try {
time = sdf.parse(s);
} catch (ParseException e) {
System.out.println("Exception");
e.printStackTrace();
}
System.out.println(time.toString());
GregorianCalendar ret = new GregorianCalendar();
ret.setTime(time);
return ret;
}
}
Đầu ra là:
Sun Dec 29 12:00:12 CET 1991
Sun Dec 27 12:00:12 CET 1992
Sun Dec 26 12:00:12 CET 1993
Sun Jan 01 12:00:12 CET 1995
Cả hai câu trả lời là rất hữu ích, chương trình này tỏa sáng nhiều hơn một ánh sáng trên vấn đề tiềm ẩn. Tôi đã kiểm tra tài liệu sai. – Tegi
bạn vừa lưu tôi từ vài giờ tìm kiếm không có trái cây trên internet! cảm ơn bạn – KoW
Sự khác biệt chính xác giữa năm * năm * và * * là gì? Tài liệu này hơi thưa thớt về sự khác biệt này (cũng như tài liệu cho Lịch). – tytk