Java 的 2020 年最后一天日期出 bug 了?这是什么底层原理?

2020-12-31 13:59:03 +08:00
 duojiao

jshell> import java.text.SimpleDateFormat;

jshell> void test(){ SimpleDateFormat smf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); String curTime = smf.format(new Date()); System.out.println(curTime); } | 已修改 方法 test()

jshell> test(); 2021-12-31 13:57:11

我和同事试了都是这样,你们也是吗, java8 编译模式和我的 java11 交互式都是这样

5557 次点击
所在节点    程序员
37 条回复
JinTianYi456
2020-12-31 14:34:27 +08:00
“年轻人不讲武德”,请看仔细了文档再编程 [doge]
JinTianYi456
2020-12-31 14:35:39 +08:00
@wysnylc #17 那是什么网站?
Jooooooooo
2020-12-31 14:45:41 +08:00
一年又一年

又到年底了
hodur
2020-12-31 15:01:57 +08:00
也算是年经问题了,每年年底都冒出来
glasslion
2020-12-31 15:03:36 +08:00
@wysnylc 就是不良设计。如果分不清 MM mm, HH hh, 在调试,测试时立马可以发现, 但 YYYY 每年就几天可以重现。
wysnylc
2020-12-31 15:09:11 +08:00
@glasslion #25 HH 和 hh 一样难以发现,如果测试的时间在 0-12 点这二者没有区别
别再为不严谨,不看文档找借口了
lskjdfgl
2020-12-31 15:36:14 +08:00
@beichenhpy 同样也有这个问题
// 2020-12-31
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now()));

// 2021-12-31
System.out.println(DateTimeFormatter.ofPattern("YYYY-MM-dd").format(LocalDate.now()));
rodneya
2020-12-31 15:42:37 +08:00
去年我也赶上了一次,,还是线上系统 都快下班了 结果临时加班,,,
NickYUyu
2020-12-31 16:06:05 +08:00
好快啊 一年就过去了
axbx
2020-12-31 16:56:01 +08:00
@bk201 历史的包袱
jintianfengda
2020-12-31 16:58:45 +08:00
看到这个问题我就知道,又是新的一年了
wc951
2020-12-31 17:16:25 +08:00
这是 ISO8061 的规定
fangcan
2020-12-31 18:29:02 +08:00
前几天刚好也遇到这个问题
pigmen
2020-12-31 19:06:50 +08:00
这么一看 go 的 format 还是香
ddllzz
2020-12-31 20:10:02 +08:00
hhhh,一年又过去了
EminemW
2021-01-01 00:24:59 +08:00
这问题,犯过一次就不能再犯了,一般都用 yyyy
sampeng
2021-01-01 15:03:06 +08:00
昨天晚上我还检查了公司所有重要代码库看有没有这个问题,很欣慰。没有,到晚上就招受了社会的毒打…合作伙伴传过来的有一些就是 2021 年…蛋疼得不行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX