Android - 日历get(Calendar.WEEK_OF_YEAR)不起作用

时间:2013-10-02 10:55:07

标签: android get calendar

我试图获得一年的总周数, 我使用这个指令:

Calendar now = Calendar.getInstance();
         now.set(Calendar.YEAR,annoInizio);
         now.set(Calendar.MONTH,11);
         now.set(Calendar.DATE, 30);

int settTotInizio = now.get(Calendar.WEEK_OF_YEAR);

我现在打印varibles和settTotinizio, 现在,WEEK_OF_YEAR的价值是40,但在settTotInizio中是1。

我不明白我做错了什么。 有人能帮助我吗?

这是我的logcat:

I/System.out(30038): ,firstDayOfWeek=2,minimalDaysInFirstWeek=0,ERA=1,YEAR=2013,MONTH=11,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=30,DAY_OF_YEAR=275,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=48,SECOND=49,MILLISECOND=762,ZONE_OFFSET=3600000,DST_OFFSET=3600000]


I/System.out(30038): settTotInizio: 1

1 个答案:

答案 0 :(得分:2)

月份从零开始,因此设置11到月份字段会将其设置为12月。 2013-12-30是您所在地区的第1周。

为什么日志首先打印第40周是因为在set()调用之后,其他字段尚未从默认的当前日期值重新计算。如果您更改了日志打印的顺序,则get()Calendar完成其他日历字段后,您将获得兼容的结果。