关于java里的SimpleDateFormat使用

一、背景

早上刷逼乎,看到一篇文章,问Java的SimpleDateFormat有没有踩坑。年份如果用了“Y”,解析结果可能和想象的不一样。

二、主要内容

主要内容如下代码展示

 

String s = "2019-12-31 01:10:10";

 

//正确示例

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.parse(s));

//错误示例
sdf = new SimpleDateFormat("YYYY-MM-dd");
System.out.println(sdf.parse(s));

如果年这里用了大写的Y,打印结果:

Tue Dec 31 00:00:00 CST 2019
Sun Dec 30 00:00:00 CST 2018

看了文章之后,到了公司我就查看了一下所有的代码,所幸用的都是小写的y。

忘了为什么是小写的y,之前可能了解过,不过现在忘了,已经是肌肉记忆了吧。

某乎上说明,YYYY是week-based-year,表示:当天所在的周属于的年份。

这和乎上的描述不一样啊,我这打印的结果怎么倒退了一年了?我再研究研究。

你可能感兴趣的:(关于java里的SimpleDateFormat使用)