同事之前的代码使用 YYYY-MM-dd 今天被捶了 [捂脸]
同事之前的代码使用 YYYY-MM-dd 今天被捶了 [捂脸]
|
GuryYuDec 30, 2019
1
同遇到😃
|
|
mahoganyDec 30, 2019
2
你说的这个同事是不是...
|
|
i36libDec 30, 2019
3
提了什么 BUG ?
|
|
4
<?php date('o-W'); // 跨年查询 BUG 用 o-W 代替 Y-W
|
|
ColoThorDec 30, 2019
5
黑人问号.jpg
|
|
BenjaminReedDec 30, 2019
6
一不小心就踩坑了 😃
|
|
7
黑人问号.jpg
|
|
8
YYYY 是 week-based-year,今天就已经 2020 年了
yyyy 还是 2019 年 |
|
wpblankDec 30, 2019
9
哈哈哈哈 我在昨天也遇见了
|
|
annielongDec 30, 2019
10
一直用 yyyy-MM-dd
|
|
11
为了照顾前端同学,我更习惯 yyyy/MM/dd HH:mm:ss
|
|
PerFectTimeDec 30, 2019
12
|
|
CurtionDec 30, 2019
13
我写的 HH:MM::ss。。。。我服了
|
|
beastkDec 30, 2019 via iPhone
14
Y-m-d H:i:s 会呗锤吗
|
|
jyboxDec 30, 2019
15
|
|
itwhatDec 30, 2019
17
Python 不受影响
|
|
W1angMhDec 30, 2019
18
java 刚毕业的时候写过 HH:MM:SS 做时分秒转换 被同事笑了好久
|
|
iFlickerDec 30, 2019
19
试了一下笑死我了
|
|
scalaerDec 30, 2019
20
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 年了 ... |
|
WordTianDec 30, 2019 via Android
23
今天公司有个系统崩了,应该和这个有关系
|
|
ccmingDec 30, 2019 via iPhone
24
|
|
25
|
|
w99wDec 30, 2019
26
|
|
HiXnameDec 30, 2019 via Android
28
我去,今天刚改了个同事的这个 bug
|
|
whileFalseDec 30, 2019 via iPhone
29
想请教这个 week based year 是个啥,以及有没有基于农历的公历纪年,谢谢
|
|
lithiumiiDec 30, 2019
30
神奇,写 py 而且长期使用 pandas.Timestamp 而非自带的 datetime (因为前者更无脑)的我表示涨姿势了
|
|
31
所以这个 week based year 有啥实际业务用得到的嘛,实在想不出来……
|
|
LaxDec 30, 2019
32
前几个月在淘宝 app 的消息列表看到这个问题,当时就知道年底会来这么一波,哈哈哈
|
|
redteaDec 30, 2019 via iPhone
33
昨天在饿了么买了优惠券,用不了,显示的开始时间是 1 年后,应该也是这个问题。
|
|
xkzhangsanDec 30, 2019
34
|
|
limbo0Dec 30, 2019 via Android
35
这个 java 和 python 的计算方式还不一样,预计我们的系统 2022 年会有一次 bug
|
|
nikooDec 30, 2019
36
week based year 是什么意思?
为什么现在才 2019 用 "YYYY" 会返回 2020 ? |
|
37
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/ |
|
ddllzzDec 31, 2019 via Android
38
昨天在 Laravel 中用到 Carbon 包的 weekOfYear 方法,返回结果是 1,还以为是 bug,其实标准就是认为昨天是 2020 年第一周。
看了上面各位说的,感觉自己就是个菜逼。 |
|
imyccDec 31, 2019
40
还有这么人性化的接口,之前真没想到过。。
|
|
Count0Dec 31, 2019
41
千年虫再现。
|
|
lihongmingDec 31, 2019 via iPhone
43
这些人都哪儿学的?我从一开始学日期格式就是小-大-小 大:小:小,也没见开源代码里用过大 Y
|
|
44
Y-m-d 亚麻跌
|
|
1daydaydeDec 31, 2019 via iPhone
45
吓得我赶紧看了一下
|
|
NSAtoolsDec 31, 2019
46
昨天刚填的坑
|
|
xwbz2018Dec 31, 2019 via Android
47
JAVA8 的 localdate 用的是 uuuu-MM-dd,不知道有没有坑
|
|
itechifyDec 31, 2019 via Android
48
笑死了,去年这个时候用的 YYYY,业务说时间不对我还不信,检查了一波脑壳痛,就这个地方用了大写的 Y
|
|
killergunDec 31, 2019
49
C# 没这问题
|
|
May725Dec 31, 2019 via iPhone
50
涨姿势了
|
|
acthtmlDec 31, 2019
51
got
|
|
randyoDec 31, 2019 via Android
52
还好前端 moment 根本不支持小 y
|
|
xuanbgDec 31, 2019
53
为啥要写 YYYY ?没有 get 到这个点呢。标准的写法不都是 yyyy-MM-dd 吗
|
|
IMCA1024Dec 31, 2019
54
一直习惯用 yyyy-MM-dd HH:mm:ss 改一个都不习惯
|
|
songjiaxin2008Dec 31, 2019
56
golang 没有这个问题
```golang fmt.Println(time.Now().Format("2006-01-02 15:04:05")) // 2019-12-31 09:25:20 ``` |
|
MutooDec 31, 2019
57
moment 使用 YYYY
date-fns 使用 yyyy https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md |
|
bobuickDec 31, 2019
58
无敌大坑货。 官方就不应该出现 YYYY 这种算法方式,坑人。
|
|
60
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
@xwbz2018 #47 u 和 y 的区别主要是公元前的年份,用 y 是正数,需要加个 G 来区分是 AD 还是 BC ;用 u 直接负数代表公元前,但公元前部分+1 才和我们常规记年相等。
|
|
WEBUGDec 31, 2019 via Android
62
弱弱问一句 sql 里没有这个问题吧
|
|
Dragonish3600Dec 31, 2019 via iPhone
63
腾讯都挂了好么
QQ 嗯生日提醒,明明是 2020 年 1 月,然后非提说日子已经过了 |
|
demoDec 31, 2019
64
date-fns^2.8.1 的 YYYY 未发现这个问题
|
|
encroDec 31, 2019
65
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. ``` |
|
EricFutureDec 31, 2019
66
一直用的 yyyy,没想到还有这个 bug,get 了,那么问题来了 YYYY 存在的意义是什么呢?
|
|
JamesRDec 31, 2019
67
关键是有 Bug 价羊毛可薅吗?
|
|
zsdroidDec 31, 2019
68
YYYY 是表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
|
|
yujieyu7Dec 31, 2019
69
phper 表示 'Y-m-d' 运行良好
|
|
Martin9Dec 31, 2019
70
cao,这周末也踩了这个坑。
|
|
71
我查了下,YYYY 的意义:“YYYY 表示的是以周为基础的年度,会计人员依靠这一点来避免在两个不同的年份之间拆分周数,从而避免公司的工资单。”
|
|
daquandiao2Dec 31, 2019
72
js 呢
|
|
estDec 31, 2019
73
看了下这个 week-based year 是 ISO 8601 规定的。
|
|
burnbridDec 31, 2019
75
这个 BUG 怎么重现?我 jdk6 用 SimpleDateFormat 没问题啊?怎么重现谁教教我?
|
|
wc951Dec 31, 2019 via Android
76
oracle 都是大写不存在这个问题
|
|
xu123456Dec 31, 2019
77
yyyy-mm-dd HH:mm:ss
|
|
fengdechoulianDec 31, 2019
78
你别说我遇到一个更奇葩的问题,ios 不支持 new Date('2019-08-02 18:00:00')这样格式的日期转换,后来改成 new Date('2019/08/02 18:00:00')了,真坑。
|
|
kelololyDec 31, 2019
79
丢人了,之前真的没注意这个
|
|
burnbridDec 31, 2019
80
知道了,这是 JAVA8 日期格式化 SimpleDateFormat 的一个小坑,不算 BUG。jdk6 不支持大写的 Y。
Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd"); |
|
sinuDec 31, 2019
81
之前还真没有注意到,不过一直用的公共的常量,检查了下,还好没问题。感谢提醒。
|
|
wc951Dec 31, 2019 via Android
82
看源码就知道 jdk6 的日期格式化类大小写 y 走的是同一个分支
|
|
shuangDec 31, 2019
83
|
|
iugoDec 31, 2019
84
JavaScript 用 getFullYear() 方法.
moment 让我们用 `YYYY `. |
|
iugoDec 31, 2019
85
|
|
stone520Dec 31, 2019
86
@fengdechoulian 开发小程序同遇到过
|
|
jorneyrDec 31, 2019
87
没问题,都是输出 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
嘿嘿 , 完全不担心
```csharp > DateTime.Now.ToString("yyyy-MM-dd") "2019-12-31" > DateTime.Now.ToString("YYYY-MM-dd") "YYYY-12-31" > ``` |
|
gcloveDec 31, 2019
89
没懂有什么问题
|
|
hiouyuuDec 31, 2019
90
week based year 一般是结合周来使用的:
比如 2019.12.31 对应的周应该是 2020W01,而不是 2019W53 |
|
fhsanDec 31, 2019
91
为了照顾前端同学,我更习惯 yyyy/MM/dd HH:mm:ss
|
|
TimeRainDec 31, 2019 via Android
92
时区问题吧,会相差 8 个小时,之前遇到过
|
|
cutloveDec 31, 2019
93
厉害了,大小写混用选手留下了惭愧的泪水、学无止境哇
|
|
chocotanDec 31, 2019
95
一直用 yyyy-MM-dd HH:mm:ss
|
|
suyuyuDec 31, 2019
96
直接给的时间戳,前端同事说你这一串数字是什么东西???
|
|
kakudesuDec 31, 2019
97
卧槽我还是第一次听说
|
|
yalanaikaDec 31, 2019
98
delphi FormatDateTime: if Token in ['a'..'z'] then Dec(Token, 32);
|
|
billchenchinaDec 31, 2019
99
根据 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 年( |
|
fbzlDec 31, 2019
100
Objective-C 有同样问题
网上复制粘贴代码太多 |