當我試圖將字符串解析爲日曆時,出現了最奇怪的錯誤。 它似乎弄亂了我用來設置結果日曆時間的Date對象。這個錯誤很不一致(或者我沒有看到它的邏輯)。任何人都可以指出我可能做錯了什麼?使用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;
}
}
輸出是:
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
這兩個答案都非常有用,這一個照在潛在的問題更多的是光的。我正在檢查錯誤的文檔。 – Tegi 2012-03-22 23:44:22
你剛剛在互聯網上從幾個小時的無果搜索中拯救了我!謝謝 – KoW 2013-11-13 13:47:02
* year *和* week year *之間的區別究竟是什麼?該文檔對於這個區別有點稀疏(就像Calendar的文檔一樣)。 – tytk 2015-07-23 19:04:07