码迷,mamicode.com
首页 > 其他好文 > 详细

Calendar的跨年问题

时间:2019-12-30 11:52:29      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:当前日期   nim   默认   取数   就会   http   图片   ini   开始   

      背景:在使用Calendar实例api getWeekYear()读取年份,在跨年那周程序会像炸弹那样爆炸。例如今年最后一周,前3天是2019年的,后四天是2020年的。在周日(一周开始)程序采用getWeekYear()方法读取的年份是2020的,但实际上周日是属于2019年的。程序去读取数据库2020年份的数据,就会因为读取不到报错(没做判断空指针情况)

    

     原因:Calendar类有一个minimalDaysInFirstWeek字段  该值默认设置是4

                 技术图片

                技术图片

               minimalDaysInFirstWeek=4是什么意思尼?其实个人理解就是个阈值,跨年那个周,n天是在新的一年的(如2020年  有4天是落在2020年的) 当n>=minimalDaysInFirstWeek时候 调用getWeekYear() 读取到的年份就会是2020年(就算当前日期是属于2019年30号)

如果程序本意是读取2019年的数据的,那么就会莫名其妙地读取到2020年数据。(这是读取不到的)

 

       解决:  使用Calendar类 get(Calendar.YEAR)获取年份

Calendar的跨年问题

标签:当前日期   nim   默认   取数   就会   http   图片   ini   开始   

原文地址:https://www.cnblogs.com/fzczailushang/p/12118408.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!