SELECT YEARWEEK(now());
在数据库查询出的本年第几周和java中获取的不一样, 研究了下原来是java里有两个关键设置,一个是从周几开始计算周,另外一个是一周最小要过了几天才算一周。
oracle是默认本年的第一天开始计算,就是直接除7,简单粗暴;
java里面就比较精细,java一般默认是周日(根据操作系统时间)作为一周的开始;一周一般过了一天就计入一周;
具体可以设置
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setMinimalDaysInFirstWeek(4);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR)+"/"+cal.getWeeksInWeekYear());
setFirstDayOfWeek()从星期几开始作为一周开始的第一天
setMinimalDaysInFirstWeek() 每年的第一周最少需要几天。如果包含1月1日的那一周在新年中有4天或更多,它就是第1周。否则,它就是上一年的最后一周,而下一周则是第一周。