获取当前日期是本年的第几周java与mysql获取值不一致
SELECT YEARWEEK(now());在数据库查询出的本年第几周和java中获取的不一样, 研究了下原来是java里有两个关键设置,一个是从周几开始计算周,另外一个是一周最小要过了几天才算一周。oracle是默认本年的第一天开始计算,就是直接除7,简单粗暴;java里面就比较精细,java一般默认是周日(根据操作系统时间)一周一般过了一天就计入一周;具体可以设置Calendar cal =
·
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周。否则,它就是上一年的最后一周,而下一周则是第一周。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)