同事之前的代码使用 YYYY-MM-dd 今天被捶了 [捂脸]

同事之前的代码使用 YYYY-MM-dd 今天被捶了 [捂脸]
1 GuryYu Dec 30, 2019 同遇到 |
2 mahogany Dec 30, 2019 你说的这个同事是不是... |
3 i36lib Dec 30, 2019 提了什么 BUG ? |
4 eve1yb0dy Dec 30, 2019 <?php date('o-W'); // 跨年查询 BUG 用 o-W 代替 Y-W |
5 ColoThor Dec 30, 2019 黑人问号.jpg |
6 BenjaminReed Dec 30, 2019 一不小心就踩坑了 |
7 aliveyang Dec 30, 2019 黑人问号.jpg |
8 chendy Dec 30, 2019 YYYY 是 week-based-year,今天就已经 2020 年了 yyyy 还是 2019 年 |
9 wpblank Dec 30, 2019 哈哈哈哈 我在昨天也遇见了 |
10 annielong Dec 30, 2019 一直用 yyyy-MM-dd |
11 opengps Dec 30, 2019 为了照顾前端同学,我更习惯 yyyy/MM/dd HH:mm:ss |
12 PerFectTime Dec 30, 2019 |
13 Curtion Dec 30, 2019 我写的 HH:MM::ss。。。。我服了 |
14 beastk Dec 30, 2019 via iPhone Y-m-d H:i:s 会呗锤吗 |
15 jybox Dec 30, 2019 |
17 itwhat Dec 30, 2019 Python 不受影响 |
18 W1angMh Dec 30, 2019 java 刚毕业的时候写过 HH:MM:SS 做时分秒转换 被同事笑了好久 |
19 iFlicker Dec 30, 2019 试了一下笑死我了 |
20 scalaer Dec 30, 2019 spark sql ---- select ..., from_unixtime(unix_timestamp(time, "dd/MMM/yyyy:HH:mm:ss +0800"), "YYYY-MM-dd HH:mm:00") as time from xxx 然后解析到 2020 年了 ... |
23 WordTian Dec 30, 2019 via Android 今天公司有个系统崩了,应该和这个有关系 |
24 ccming Dec 30, 2019 via iPhone |
25 ccming Dec 30, 2019 via iPhone |
26 w99w Dec 30, 2019 |
28 NealCCC Dec 30, 2019 via Android 我去,今天刚改了个同事的这个 bug |
29 whileFalse Dec 30, 2019 via iPhone 想请教这个 week based year 是个啥,以及有没有基于农历的公历纪年,谢谢 |
30 lithiumii Dec 30, 2019 神奇,写 py 而且长期使用 pandas.Timestamp 而非自带的 datetime (因为前者更无脑)的我表示涨姿势了 |
31 rockyou12 Dec 30, 2019 所以这个 week based year 有啥实际业务用得到的嘛,实在想不出来…… |
32 Lax Dec 30, 2019 前几个月在淘宝 app 的消息列表看到这个问题,当时就知道年底会来这么一波,哈哈哈 |
33 redtea Dec 30, 2019 via iPhone 昨天在饿了么买了优惠券,用不了,显示的开始时间是 1 年后,应该也是这个问题。 |
34 xkzhangsan Dec 30, 2019 |
35 limbo0 Dec 30, 2019 via Android 这个 java 和 python 的计算方式还不一样,预计我们的系统 2022 年会有一次 bug |
36 nikoo Dec 30, 2019 week based year 是什么意思? 为什么现在才 2019 用 "YYYY" 会返回 2020 ? |
37 Yvette Dec 31, 2019 If a week is split at the end of the year then it is assigned to the year in which more that half of the days of that week occur. https://nakedsecurity.sophos.com/2019/12/23/serious-security-the-decade-ending-y2k-bug-that-wasnt/ |
38 ddllzz Dec 31, 2019 via Android 昨天在 Laravel 中用到 Carbon 包的 weekOfYear 方法,返回结果是 1,还以为是 bug,其实标准就是认为昨天是 2020 年第一周。 看了上面各位说的,感觉自己就是个菜逼。 |
40 imycc Dec 31, 2019 还有这么人性化的接口,之前真没想到过。。 |
41 Count0 Dec 31, 2019 千年虫再现。 |
43 lihongming Dec 31, 2019 via iPhone 这些人都哪儿学的?我从一开始学日期格式就是小-大-小 大:小:小,也没见开源代码里用过大 Y |
44 wensonsmith Dec 31, 2019 via iPhone Y-m-d 亚麻跌 |
45 1daydayde Dec 31, 2019 via iPhone 吓得我赶紧看了一下 |
46 NSAtools Dec 31, 2019 昨天刚填的坑 |
47 xwbz2018 Dec 31, 2019 via Android JAVA8 的 localdate 用的是 uuuu-MM-dd,不知道有没有坑 |
48 itechify PRO 笑死了,去年这个时候用的 YYYY,业务说时间不对我还不信,检查了一波脑壳痛,就这个地方用了大写的 Y |
49 killergun Dec 31, 2019 C# 没这问题 |
50 May725 Dec 31, 2019 via iPhone 涨姿势了 |
51 acthtml Dec 31, 2019 got |
52 randyo Dec 31, 2019 via Android 还好前端 moment 根本不支持小 y |
53 xuanbg Dec 31, 2019 为啥要写 YYYY ?没有 get 到这个点呢。标准的写法不都是 yyyy-MM-dd 吗 |
54 IMCA1024 Dec 31, 2019 一直习惯用 yyyy-MM-dd HH:mm:ss 改一个都不习惯 |
56 songjiaxin2008 Dec 31, 2019 golang 没有这个问题 ```golang fmt.Println(time.Now().Format("2006-01-02 15:04:05")) // 2019-12-31 09:25:20 ``` |
57 Mutoo Dec 31, 2019 moment 使用 YYYY date-fns 使用 yyyy https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md |
58 bobuick Dec 31, 2019 无敌大坑货。 官方就不应该出现 YYYY 这种算法方式,坑人。 |
60 JR1024 Dec 31, 2019 Calendar calendar = Calendar.getInstance(; // 2019-12-31 calendar.set(2019, Calendar.DECEMBER, 31); Date strDate1 = calendar.getTime(); // 2020-01-01 calendar.set(2020, Calendar.JANUARY, 1); Date strDate2 = calendar.getTime(); // 大写 YYYY DateFormat formatUpperCase = new SimpleDateFormat("YYYY/MM/dd"); System.out.println("2019-12-31 to YYYY/MM/dd: " + formatUpperCase.format(strDate1)); System.out.println("2020-01-01 to YYYY/MM/dd: " + formatUpperCase.format(strDate2)); // 小写 YYYY DateFormat formatLowerCase = new SimpleDateFormat("yyyy/MM/dd"); System.out.println("2019-12-31 to yyyy/MM/dd: " + formatLowerCase.format(strDate1)); System.out.println("2020-01-01 to yyyy/MM/dd: " + formatLowerCase.format(strDate2)); |
61 b821025551b Dec 31, 2019 @xwbz2018 #47 u 和 y 的区别主要是公元前的年份,用 y 是正数,需要加个 G 来区分是 AD 还是 BC ;用 u 直接负数代表公元前,但公元前部分+1 才和我们常规记年相等。 |
62 WEBUG Dec 31, 2019 via Android 弱弱问一句 sql 里没有这个问题吧 |
63 Dragonish3600 Dec 31, 2019 via iPhone 腾讯都挂了好么 QQ 嗯生日提醒,明明是 2020 年 1 月,然后非提说日子已经过了 |
64 demo Dec 31, 2019 date-fns^2.8.1 的 YYYY 未发现这个问题 |
65 encro Dec 31, 2019 https://www.php.net/manual/en/function.date.php ``` Things to be aware of when using week numbers with years. <?php echo date("YW", strtotime("2011-01-07")); // gives 201101 echo date("YW", strtotime("2011-12-31")); // gives 201152 echo date("YW", strtotime("2011-01-01")); // gives 201152 too ?> BUT <?php echo date("oW", strtotime("2011-01-07")); // gives 201101 echo date("oW", strtotime("2011-12-31")); // gives 201152 echo date("oW", strtotime("2011-01-01")); // gives 201052 (Year is different than previous example) ?> Reason: Y is year from the date o is ISO-8601 year number W is ISO-8601 week number of year Conclusion: if using 'W' for the week number use 'o' for the year. ``` |
66 EricFuture Dec 31, 2019 一直用的 yyyy,没想到还有这 bug,get 了,那么问题来了 YYYY 存在的意义是什么呢? |
67 JamesR Dec 31, 2019 关键是有 Bug 价羊毛可薅吗? |
68 zsdroid Dec 31, 2019 YYYY 是表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。 |
69 yujieyu7 Dec 31, 2019 phper 表示 'Y-m-d' 运行良好 |
70 Martin9 Dec 31, 2019 cao,这周末也踩了这个坑。 |
71 zsdroid Dec 31, 2019 我查了下,YYYY 的意义:“YYYY 表示的是以周为基础的年度,会计人员依靠这一点来避免在两个不同的年份之间拆分周数,从而避免公司的工资单。” |
72 daquandiao2 Dec 31, 2019 js 呢 |
73 est Dec 31, 2019 看了下这个 week-based year 是 ISO 8601 规定的。 |
75 burnbrid Dec 31, 2019 这个 BUG 怎么重现?我 jdk6 用 SimpleDateFormat 没问题啊?怎么重现谁教教我? |
76 wc951 Dec 31, 2019 via Android oracle 都是大写不存在这个问题 |
77 xu123456 Dec 31, 2019 yyyy-mm-dd HH:mm:ss |
78 fengdechoulian Dec 31, 2019 你别说我遇到一个更奇葩的问题,ios 不支持 new Date('2019-08-02 18:00:00')这样格式的日期转换,后来改成 new Date('2019/08/02 18:00:00')了,真坑。 |
79 kelololy Dec 31, 2019 丢人了,之前真的没注意这个 |
80 burnbrid Dec 31, 2019 知道了,这是 JAVA8 日期格式化 SimpleDateFormat 的一个小坑,不算 BUG。jdk6 不支持大写的 Y。 Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd"); |
81 sinu Dec 31, 2019 之前还真没有注意到,不过一直用的公共的常量,检查了下,还好没问题。感谢提醒。 |
82 wc951 Dec 31, 2019 via Android 看源码就知道 jdk6 的日期格式化类大小写 y 走的是同一个分支 |
83 shuang Dec 31, 2019 |
84 iugo Dec 31, 2019 Javascript 用 getFullYear() 方法. moment 让我们用 `YYYY `. |
85 iugo Dec 31, 2019 |
86 stone520 Dec 31, 2019 @fengdechoulian 开发小程序同遇到过 |
87 jorneyr Dec 31, 2019 没问题,都是输出 2019-12-31 ```java import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Test { public static void main(String[] args) throws Exception { System.out.println(LocalDate.now()); // 2019-12-31 System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now())); // 2019-12-31 System.out.println(DateTimeFormatter.ofPattern("YYYY-MM-dd").format(LocalDate.now())); // 2019-12-31 } } ``` |
88 dotw2x Dec 31, 2019 嘿嘿 , 完全不担心 ```csharp > DateTime.Now.ToString("yyyy-MM-dd") "2019-12-31" > DateTime.Now.ToString("YYYY-MM-dd") "YYYY-12-31" > ``` |
89 gclove Dec 31, 2019 没懂有什么问题 |
90 hiouyuu Dec 31, 2019 week based year 一般是结合周来使用的: 比如 2019.12.31 对应的周应该是 2020W01,而不是 2019W53 |
91 fhsan Dec 31, 2019 为了照顾前端同学,我更习惯 yyyy/MM/dd HH:mm:ss |
92 TimeRain Dec 31, 2019 via Android 时区问题吧,会相差 8 个小时,之前遇到过 |
93 cutlove Dec 31, 2019 厉害了,大小写混用选手留下了惭愧的泪水、学无止境哇 |
95 chocotan Dec 31, 2019 一直用 yyyy-MM-dd HH:mm:ss |
96 suyuyu Dec 31, 2019 直接给的时间戳,前端同事说你这一串数字是什么东西??? |
97 kakudesu Dec 31, 2019 卧槽我还是第一次听说 |
98 yalanaika Dec 31, 2019 delphi FormatDateTime: if Token in ['a'..'z'] then Dec(Token, 32); |
99 billchenchina Dec 31, 2019 根据 ISO-8601 和 GB/T 7408-2005,现在已经是 2020 年第一周了 billchenchina@HP-Pavilion-14-bf048tx:~$ date +%G 2020 billchenchina@HP-Pavilion-14-bf048tx:~$ date +%V 01 国际标准化组织在 ISO 8601 《数据存储和交换形式信息交换日期和时间的表示方法》中将星期一定为一星期的第一天。中华人民共和国国家标准 GB/T 7408-2005 《数据元和交换格式信息交换日期和时间表示法》和国际标准相同,也以周一为一周的第一天。 https://zh.wikipedia.org/wiki/%E6%98%9F%E6%9C%9F#%E9%80%B1%E9%A6%96%E9%97%AE%E9%A2%98 这周是 2019.12.30 - 2020.1.5,2019 年两天,2020 年五天。所以这周是 2020 年( |
100 fbzl Dec 31, 2019 Objective-C 有同样问题 网上复制粘贴代码太多 |