【Java】java YYYY-MM-DD与 yyyy的区别,有重大bug
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 到底是何方妖怪?
一.简单的日期判断(YYYY/MM/DD): ^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$ 二.演化的日期判断(YYYY/MM/DD| YY/MM/DD): ^(^(\d{4}| ... 在做项目的时候:很多文件都是按数据添加时间的年/月/日的目录保存 做的时候发现不能直接 DateTime(yyyy-mm-dd).ToString("yyyy/MM/dd")得到 ... 其实YYYY/MM/dd 和yyyy/MM/dd是不同的,而且YYYY/MM/dd 可能会出现年份的大bug,下面直接上代码 @org.junit.Testpublic void dateYYYY() ... 苹果手机ios系统居然特喵的 不支持日期yyyy-MM-dd HH:mm:ss.ms, 只支持yyyy/MM/dd HH:mm:ss 我只能用 .replace(/\-/g,'\/'); 来替换掉了, ... 第一种yyyy/MM/dd转换成yyyy-MM-dd 知识点来自官网,可查阅: split() 方法用于把一个字符串分割成字符串数组 join()方法用于把数组中的所有元素放入一个字符串 var my ... 将字符串格式yyyy/MM/dd的字符串转为日期,格式"yyyy-MM-dd" public static String strToDateFormat(String date) ... 在JavaScript中日期yyyy-MM-dd格式与yyyy/MM/dd为不同的日期表达式 console.log('2020-10-29', new Date('2020-10-29')) con ... 当电脑的日期格式不是yyyy/mm/dd的形式的时候,假使是yyyy-mm-dd格式, 即便在程序中格式化日期格式yyyy/mm/dd,但是做成的日期却是yyyy-mm-dd. 不能只是单纯的Shor ... 使用kettle出现 couldn't convert string [...] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] 试了各种方法,最后发 ... 7.(程序题)编程将输入的yyyy/mm/dd格式的日期显示为yyyy年mm月dd日. str = input("请输入日期:") length=len(str) if str[6 ...【Java】java YYYY-MM-DD与 yyyy的区别,有重大bug相关推荐
最新文章
热门文章