格式化时间用了YYYY-MM-dd,元旦当天老板喊我回去改Bug!

【视频福利推荐】

2T免费学习视频,内含SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,Jenkins、Nexus、Docker、ELK等等免费学习视频,持续更新!


往期热门文章:

1、《往期精选优秀博文都在这里了!》
2、39 个奇葩代码注释,看完笑哭了。。。
3、牛逼的人,都已经开始用文言文写代码了!
4、如何优雅地根治null值引起的Bug!
5、答应我,别再if/else走天下了可以吗?


昨天听一同事讲到自己的项目中因为格式化时间用到了"YYYY-MM-dd",元旦当天被喊回去改Bug,到底是怎么回事哪?

我们先看一下什么情况!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看出上述的几个时间都出现了问题!连某大厂的手环也没逃过命运啊!

一、问题复现:

注意:JDK测试版本为1.7
在这里插入图片描述
执行结果:
在这里插入图片描述

可以看出来使用"YYYY-MM-DD"格式化时间出现了错误!

二、具体是什么原因哪?

这是因为Java语言中在特定的时间或者数字等数据上,平时你感觉一切都OK!但是在特定时间、特定环境就会出问题!刚好格式化时间就算其中的一个!

2020年跨年的时候刚好是2019和2020交换的时候,于是就出现了格式化时间的问题,归其原因就是使用了"YYYY-MM-dd"格式化时间!

YYYY 是 week-based-year,现在就已经 2020 年了,yyyy 还是 2019 年!

Java圣经表示:

YYYY 表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。

三、总结:

不论你是否也经历了这样的Bug,希望看到这篇文章之后,对这个细节可以上点心,避免日后因为这个细节而犯错。

开发中还是用yyyy-MM-dd来做日期格式化,其它的就不要用了!

往期热门文章:

1、Stack Overflow上188W+程序员都关注的问题:Java到底是值传递还是引用传递?
2、Dubbo必会的18个面试题!一网打尽!
3、可以提高千倍效率的Java代码小技巧
4、后端开发甩锅指南!
在这里插入图片描述

【视频福利】2T免费学习视频,搜索或扫描上述二维码关注微信公众号:Java后端技术(ID: JavaITWork),和20万人一起学Java!回复:1024,即可免费获取!内含SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,Jenkins、Nexus、Docker、ELK等等免费学习视频,持续更新!

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值