1.概述

写这篇博文是记录下跨年的bug。

去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误。

当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据。

今天逛技术论论坛正好遇到Java日期的操作bug。

1 yyyy 和 YYYY

别看字,看代码

@Test
public void testWeekBasedYear() {Calendar calendar = Calendar.getInstance();// 2019-12-31calendar.set(2019, Calendar.DECEMBER, 31);Date strDate1 = calendar.getTime();// 2020-01-01calendar.set(2020, Calendar.JANUARY, 1);Date strDate2 = calendar.getTime();// 大写 YYYYSimpleDateFormat formatYYYY = new SimpleDateFormat("YYYY/MM/dd");System.out.println("2019-12-31 转 YYYY/MM/dd 格式: " + formatYYYY.format(strDate1));System.out.println("2020-01-01 转 YYYY/MM/dd 格式: " + formatYYYY.format(strDate2));// 小写 YYYYSimpleDateFormat formatyyyy = new SimpleDateFormat("yyyy/MM/dd");System.out.println("2019-12-31 转 yyyy/MM/dd 格式: " + formatyyyy.format(strDate1));System.out.println("2020-01-01 转 yyyy/MM/dd 格式: " + formatyyyy.format(strDate2));
}

输出结果:

2019-12-31 转 YYYY/MM/dd 格式: 2020/12/31
2020-01-01 转 YYYY/MM/dd 格式: 2020/01/01
2019-12-31 转 yyyy/MM/dd 格式: 2019/12/31
2020-01-01 转 yyyy/MM/dd 格式: 2020/01/01

细心的同学应该发现了2019-12-31用YYYY/MM/dd 此刻变成了2020/12/31

??为何呢?

YYYY这么大的能耐,能跑到2020年代去?

我2019年底买的东西,你如果用YYYY来格式化出库日期,我是不是得到2020年底才能收到货?此bug问题挺大的呀!

YYYY 到底是何方妖怪?

【Java】java YYYY-MM-DD与 yyyy的区别,有重大bug相关推荐

  1. 年月日格式判断-正则表达式 YYYY/MM/DD、YYYY/MM/DD| YY/MM/DD、 ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}…

    一.简单的日期判断(YYYY/MM/DD): ^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$ 二.演化的日期判断(YYYY/MM/DD| YY/MM/DD): ^(^(\d{4}| ...

  2. 得到 yyyy/mm/dd 格式时间

    在做项目的时候:很多文件都是按数据添加时间的年/月/日的目录保存 做的时候发现不能直接 DateTime(yyyy-mm-dd).ToString("yyyy/MM/dd")得到 ...

  3. YYYY/MM/dd 日期format的幺蛾子

    其实YYYY/MM/dd 和yyyy/MM/dd是不同的,而且YYYY/MM/dd 可能会出现年份的大bug,下面直接上代码 @org.junit.Testpublic void dateYYYY() ...

  4. 【怒怼老乔】苹果手机ios系统居然特喵的不支持日期yyyy-MM-dd HH:mm:ss.ms,只支持 yyyy/MM/dd HH:mm:ss

    苹果手机ios系统居然特喵的 不支持日期yyyy-MM-dd HH:mm:ss.ms, 只支持yyyy/MM/dd HH:mm:ss 我只能用 .replace(/\-/g,'\/'); 来替换掉了, ...

  5. yyyy/MM/dd转换成yyyy-MM-dd,yyyy-MM-dd转换成yyyy/MM/dd你会了吗

    第一种yyyy/MM/dd转换成yyyy-MM-dd 知识点来自官网,可查阅: split() 方法用于把一个字符串分割成字符串数组 join()方法用于把数组中的所有元素放入一个字符串 var my ...

  6. 将字符串格式yyyy/MM/dd的字符串转为日期,格式“yyyy-MM-dd“

    将字符串格式yyyy/MM/dd的字符串转为日期,格式"yyyy-MM-dd" public static String strToDateFormat(String date) ...

  7. Js日期yyyy-MM-dd与yyyy/MM/dd的区别

    在JavaScript中日期yyyy-MM-dd格式与yyyy/MM/dd为不同的日期表达式 console.log('2020-10-29', new Date('2020-10-29')) con ...

  8. yyyy/mm/dd变成yyyy-mm-dd

    当电脑的日期格式不是yyyy/mm/dd的形式的时候,假使是yyyy-mm-dd格式, 即便在程序中格式化日期格式yyyy/mm/dd,但是做成的日期却是yyyy-mm-dd. 不能只是单纯的Shor ...

  9. Kettle5.2 couldn't convert string [...] to a date using format [yyyy/MM/dd HH:mm:ss.SSS]

    使用kettle出现 couldn't convert string [...] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] 试了各种方法,最后发 ...

  10. Python写,将输入的yyyy/mm/dd格式的日期显示为yyyy年mm月dd日。

    7.(程序题)编程将输入的yyyy/mm/dd格式的日期显示为yyyy年mm月dd日. str = input("请输入日期:") length=len(str) if str[6 ...

最新文章

  1. CentOS6下编译安装zabbix_agent3.0客户端
  2. jquery 属性操作
  3. 数据归一化处理方法_数据预处理:归一化和标准化
  4. 最全面的MySQL面试题大全-二
  5. 物联网os_用于物联网的FireFox OS,NextCloud公告以及更多新闻
  6. 使用POI生成Excel文件,可以自动调整excel列宽
  7. ActiveMQ专题2: 持久化
  8. php 动态参数,PHP 动态配置运行时环境参数ini_xxx,extension_loaded
  9. [转载]Qt之解决中文乱码_vortex_新浪博客
  10. sql 如何把查询得到的结果如何放入一个新表中
  11. java fp-growth 算法包_java实现fp-growth算法
  12. 【图像去噪】基于脉冲神经网络PCNN实现图像去噪附matlab代码
  13. 利用python爬取飞猪信息_手把手教你使用Python爬取西刺代理数据(上篇)-阿里云开发者社区...
  14. 社交网络中影响力传播模型
  15. fastboot实战
  16. VMware 安装安卓虚拟机 一步一步的手把手教学
  17. Excel 18个快捷键
  18. windows修改IP命令/脚本
  19. linux 查看内存 udimm rdimm,服务器UDIMM、LRDIMM、RDIMM三种内存如何区别
  20. 从手机端 H5 制作来看 WEB 动画的术与道

热门文章

  1. 美团配送事业部尹兵兵加入货拉拉任运力副总裁
  2. 斗鱼递交私有化退市文件 与虎牙合并暂无完成时间表
  3. 阿里发布手掌大小云电脑“无影”,价格是传统PC一半
  4. 阿里文娱再调整:李捷出任阿里影业总裁,戴玮任文娱COO
  5. 华为Mate X国行售价曝光,5G网速实测,强悍!
  6. 5G来了 多款4G手机开始降价销售
  7. SK海力士CEO前往日本 解决关键半导体原材料供应问题
  8. 支持色温调节 新款Kindle Oasia上市 国行版售价2399元起
  9. 百度网盘挺住!给非会员限速只是为了活下去
  10. 5G对人体危害很大?张朝阳回应:并未做过深入研究