工作中遇到一个问题,在同一个页面试用了直接在MySQL中查询的周数和Java中的calendar取得的周数不相等;
仔细看了一下,MySQL的week函数的周第一天有设置,返回的周数是7,6;
select week(now(), 1), week(now(), 0);
Java中的周第一天也有设置,返回的周数是6,6;
Calendar today = Calendar.getInstance(); today.setMinimalDaysInFirstWeek(7); today.setFirstDayOfWeek(Calendar.SUNDAY); System.out.println(today.get(Calendar.WEEK_OF_YEAR)); today.setFirstDayOfWeek(Calendar.MONDAY); System.out.println(today.get(Calendar.WEEK_OF_YEAR));
但是就是差了一周,在网上查了一会,看到一种说法;
把mysql week() 值加一就行了。
你测试:
select week('2016-01-01',0);
select week('2016-01-01',1);
……
select week('2016-01-01',7);
就知道,week将 01-01 计算为0或上一年的最后一周。java是将其记为第一周。
所以,加一即可。
这东西,弄统一点多好……
留言