2012-07-19 51 views
0

我在Java中有一個Date對象。有時日期的年份設置爲17.當我使用SimpleDateFormat輸出它時,它將打印爲0017.我所有的年份都將在2000年。有沒有辦法檢查年份是否低於某個特定的值,然後如果它是2000年添加到它?然後,一旦你這樣做,你如何重新創建Date對象來使用新的一年?看起來像日期對象中的所有內容都被棄用。Java中的日期,如何操縱年?

+0

你是否反對使用日曆出於某種原因? – 2012-07-19 15:40:05

回答

2

如果您使用日曆或喬達時間(一個更好的選擇),您可以獲取和設置一年(或其他字段)

你一年不應該擺在首位17。我會盡力從源頭解決問題,而不是稍後再補丁。

3

我會用一個日曆:

所有的
Date myDate = new Date(); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(myDate); 
int year = cal.get(Calendar.YEAR); 
if(year < 2000) 
    cal.add(Calendar.YEAR, 2000); // add two thousand years 
0

我會強烈推薦使用Joda-Time。爲什麼?該API更好,更直觀,並且不會受困擾SimpleDateFormat等的線程問題的影響。或者大量的貶值,使當前的Date API陷入癱瘓。

+0

喬達時間是否有自己的日期格式? – 2012-07-19 17:35:13

+0

它帶有自己的線程安全日期/時間格式器。它們與標準Java版本非常相似,但可用於多線程的envs。 – 2012-07-19 22:36:02