日曆API令我困惑。我想要做的事似乎很簡單,但並不真正爲我工作。如何獲得星期一開始的特定日期的星期幾?
我想將星期的第一天設置爲星期一,而不是默認的星期天(我知道它不同於Locale,但我希望總是在星期一執行)。最重要的是,對於給定的日期,我想檢索它代表的星期幾(例如,星期一爲1,星期日爲7)。
有沒有辦法用默認的Calendar API來做到這一點?我已經試過類似:
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTime(<some Date object that's a monday>);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
它給了我2,而不是1。我懷疑這是因爲它給我的Calendar.MONDAY
的價值,但我不能完全肯定。基於這種懷疑,下面的工作:
Calendar cal = Calendar.getInstance();
cal.setTime(<some Date object that's a monday>);
System.out.println(
(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) ?
7 : cal.get(Calendar.DAY_OF_WEEK) - 1);
......但我寧願沒有那個if語句。有沒有辦法通過直接的Calendar API來完成我想要的功能?
OK可以找到,所以我還要做什麼,我做了上述其中工程。至少它會始終如一,不管區域設置如何,因爲Calendar.MONDAY總是2. – Depressio 2013-03-27 18:15:48