simpleDateformat解析问题

Sud*_*Roy 1 java

Timestamp tsmp = Timestamp.valueOf("0302-02-20 00:00:00");
final DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(df.format(tsmp));
Run Code Online (Sandbox Code Playgroud)

此代码段打印:0302-02-20 12:00:00 为什么会这样?有人可以解释一下吗?

Jon*_*eet 8

您正在使用hh,这是12小时格式("文档中指定的上午/下午(1-12)小时").请HH改用.

final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

除非你还使用AM/PM指示符,否则你几乎应该使用它.hha

(你真的是想在302AD创建一个时间戳,但感兴趣吗?)