乔达时间周结束日期

Joda Time Week Ending Date

我正在尝试使用 Joda 时间获取一周的最后一天。

周日至周六这样做是否正确(生产准备就绪):

        DateTimeZone timeZone = DateTimeZone.forID( "America/New_York" );
        DateTime now = new DateTime( timeZone );

        DateTime weekStart = now.withDayOfWeek( DateTimeConstants.SATURDAY ).minusDays(6);
        DateTime weekEnd = now.withDayOfWeek(DateTimeConstants.SATURDAY).plusDays( 0 );
        Interval week = new Interval( weekStart, weekEnd );
        //Dump to console…
        String[] week_start = weekStart.toString().split("T"); 
        String[] week_End = weekEnd.toString().split("T"); 
        String[] now_date = now.toString().split("T"); 
        System.out.println( "now: " + now_date[0] );
        System.out.println( "weekStart: " + week_start[0]);
        System.out.println( "weekEnd: " + week_End[0] );
        System.out.println( "week: " + week );

输出:

now: 2015-08-06
weekStart: 2015-08-02
weekEnd: 2015-08-08
week: 2015-08-02T14:15:46.580-04:00/2015-08-08T14:15:46.580-04:00

感谢 gaganbm 的评论,我这样做了:

DateTime weekStart = getUSFirstDayOfWeek(now);
DateTime weekEnd = now.withDayOfWeek(DateTimeConstants.SATURDAY).plusDays( 0 );

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

似乎产生了正确的结果!