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