2012-11-28 51 views

回答

3

首先,一週的第一天,覆蓋至週日將需要覆蓋所有其他工作日以及。但是這些最終常數在類DateTimeConstants中定義,這是不可覆蓋的。但是你不希望重寫這些值,因爲它會擾亂喬達時代的ISO合規性。

在同一時間,我想知道爲什麼你想要覆蓋它在第一個地方?你能提供一個用例嗎?

public static DateTime getUSFirstDayOfWeek(DateTime dateTime) { 
    return dateTime.withDayOfWeek(DateTimeConstants.MONDAY).minusDays(1); 
} 

這個簡單的輔助方法可能會完成這項工作。請注意,我沒有使用SUNDAY,因爲它將在未來一週,即美國的觀點 - 下週已經發布。

+1

使用案例:2006-12-31 - 1或52週數是多少? 更通用的用例:繪製包含兩個系列的圖表:1:本年度的每週收入,2:去年的每週收入,以比較數據。對於美國用戶,周必須在星期日開始。這在很多行業都很常見。 –

+0

「......因爲它會擾亂喬達時代的ISO合規。」 但它支持自定義minDaysInFirstWeek,是不是「搞亂ISO合規」? –

+0

有'ReadableDateTime#getWeekOfWeekyear()',但這可能是錯誤的,因爲它使用星期一作爲第一天。我想你不會爲你的應用程序實現一個'正確'的替代方法。關於符合ISO標準的混亂:舒爾,JodaTime支持大量的自定義內容,比如完成不同的年表 - 但我會盡可能地避免這種情況,因爲它可能會產生損壞的結果你的喬達時間使用的其他點。 – benjamin