2012-05-14 16 views
0

編輯:謝謝,我現在明白了很多。當你第一次開始時,它非常混亂!謝謝您的幫助。我將繼續保持這個問題的狀態(處於更多的低報價危機中),因爲它可能會幫助其他人。有跡象表明,似乎每個人都建議日期時間其他一些圖書館爲什麼我沒有得到我設定這個日曆對象期望的星期幾?


我與Java日曆功能 - 掙扎它似乎返回錯誤數據的底部的數字應該是按照日曆日,但返回作爲星期六!

Calendar cal = new GregorianCalendar(); 
     cal.set(2012,2,23); // 0 = January 

     String weekdays[]={"sunday","monday", "tuesday", "wednesday","thursday","friday","saturday",}; 

     Integer Weekdaycurrent1=cal.get(Calendar.DAY_OF_WEEK); 
     System.out.println("today is a "+weekdays[Weekdaycurrent1]); //Prints today is Saturday, when it should be a thursday 
+7

這是一個壞主意,認爲自1.0這一直是JDK的一部分一類是「錯誤的」。幾年前有人會發現這樣一個微不足道的錯誤。你是那個錯的。假設你是這個問題,你會進步得更快。 – duffymo

+1

你的文章標題聽起來好像你已經發現了一個Java錯誤,當然這是不正確的。考慮編輯你的線程並重新命名它,「我對日曆類的哪些假設是錯誤的」,或類似的東西。做到這一點,我敢打賭,反對票將會消失。 –

+0

謝謝,我現在明白了很多。當你第一次開始時,它非常混亂!謝謝您的幫助。我會繼續提出這個問題(因爲它可能會幫助其他人) –

回答

4

對於初學者來說,DAY_OF_WEEK是基於1

public final static int SUNDAY = 1; 

其次,2012-03-23(沒錯,三月不2月)的設置由cal.set(2012, 2, 23)週五

您的代碼行爲正確。

編輯:對於那些過於跛腳正確讀取的問題,呼籲cal.set(2012,2,23)設置日期2012-03-23,因爲month參數是從零開始的(即一月= 0,二月= 1,月= 2等)

+1

我第一次發表聲明,但他設定的日期是2012-2-23 .. – Jack

+0

@Jack Dude,'cal.set(2012) ,2,23)'將它設置爲* March *,**而不是** * February *,因爲月份參數是基於零的(1月= 0) – Bohemian

+0

人月約定和Java月約定之間有一些重疊;)我實際上知道它是基於零的,但是當我讀到你的答案時,我認爲你的'2012-03-23'是零基礎,因爲我太懶了,對此感到抱歉! – Jack

相關問題