之前在维护公司的项目时,公司的测试人员反馈说,在app里有个对账查询的模块,每年会出现几天时间错乱的问题,,筛选的时候,年份总是会往后推一年,过几天又会恢复正常.前面的开发也一直没解决.这时候,我可能觉得问题就是在时间转换这块了.
对于年份来说,Y和y其实意义是不同的,y表示的是year具体精确到某一天,基本上是符合我们开发中用来判断或者进行时间转换的需求的,也是苹果官方所推崇的用法.而Y表示的事Week year,也就是当天所在的一周所属的年份,意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。简单举例来说:今天是2020年12月31号礼拜天,是这一周的第一天,到了明天,就已经是2021年1月1号了,那么今天的时间在转化年份的时候,也会显示为2021年,因此,在具体根据时间查询数据的时候,如果将yyyy写成YYYY,在跨年的一周里,未跨年的几天所显示的年份都会出现问题,进而会影响到对应的时间查询.在解决这个问题后,我又在整个项目进行了全局搜索,确认产品不存在按周跨年的需求算法后,将所有的YYYY全局替换成yyyy.至此问题解决.