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 交互式都是这样

5340 次点击
所在节点    程序员
37 条回复
Asuka0947
2020-12-31 14:03:14 +08:00
YYYY 和 yyyy 不一样的,YYYY 按周算,跨年了,这周算 2021 年
MineDog
2020-12-31 14:04:14 +08:00
YYYY 大写的问题吧
hahastudio
2020-12-31 14:06:32 +08:00
/t/633650
年经
focuxin
2020-12-31 14:07:31 +08:00
YYYY 大写是当周的年份
ebony0319
2020-12-31 14:12:04 +08:00
同学,这是语感问题,上次我拿的那个这个问同事,听说不知道 YYYY 是什么,但是肯定不会写 YYYY.
arloor
2020-12-31 14:14:37 +08:00
你这个问题,每年都能出来
去年我就在文章里看到了
yaphets666
2020-12-31 14:14:57 +08:00
这个问题去年出过啊 v2 也讲过
MineDog
2020-12-31 14:18:43 +08:00
bk201
2020-12-31 14:20:34 +08:00
我是不明白为啥 java 源码里 老搞这些令人混淆犯错的东西
Vegetable
2020-12-31 14:21:09 +08:00
年经贴
yuk1no
2020-12-31 14:21:30 +08:00
都 1202 年了 别用 SimpleDateFormat 了
uselessVisitor
2020-12-31 14:24:27 +08:00
用 DateTimeFormatter
wysnylc
2020-12-31 14:25:21 +08:00
@bk201 #9
盲人不要写代码
chendy
2020-12-31 14:25:45 +08:00
YYYY 是按周算的,只要有一天在下一年,这一周就是下一年的第一周,于是这周就已经到了下一年
PiersSoCool
2020-12-31 14:26:04 +08:00
用啥都没区别,就是 YYYY 和 yyyy 的问题
话说这种垃圾设计是怎么变成标准的 这区分度也太低了 太容易用错了吧
duojiao
2020-12-31 14:27:54 +08:00
懂了,谢谢各位,傻了发了年经贴哈哈
wysnylc
2020-12-31 14:28:05 +08:00

每年都会有新同学来问,但是不肯看文档
wysnylc
2020-12-31 14:29:39 +08:00
@PiersSoCool #15 我觉得是人的问题,分的清楚 MM 和 mm HH 和 hh,却把 YYYY 当成 yyyy?这是思维割裂了吗?
不懂 MM 和 mm HH 和 hh 的区别啊,那没事了
24KPureFather
2020-12-31 14:30:24 +08:00
我在 idea 里面把你的 test() 方法中的代码跑一了一边,确实会出现 2021-12-31 13:57:11 这个结果,但是 idea 会给你警告 Uppercase 'YYYY' (week year) pattern is used: probably 'yyyy' (year) was intended 的,把 YYYY 改成小写的 yyyy 就好了,idea 提醒真香~
javen73
2020-12-31 14:34:25 +08:00
@hahastudio #3 哈哈哈,我说这个标题怎么这么熟悉。

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

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

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

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

© 2021 V2EX