解释SimpleDateFormat的行为

jph*_*jph 0 java datetime core

试试这个:

DateFormat df = new SimpleDateFormat("y");
System.out.println(df.format(new Date()));
Run Code Online (Sandbox Code Playgroud)

如果没有读取SimpleDateFormat的javadoc,你会期望输出什么?我的期望是"0".也就是说,当年的最后一位数,即2010年.

相反,它将其填充为2位数,就像格式字符串是"yy"一样.

为什么?似乎很奇怪.如果我想要2位数,那么我就用"yy"了.

Alb*_*gni 5

"如果不阅读javadoc",往往是一种危险的态度.Joshua Bloch 在Java中写了一本关于这种奇怪行为的书.