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));
此代码段打印:0302-02-20 12:00:00 为什么会这样?谁能解释一下?
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));
此代码段打印:0302-02-20 12:00:00 为什么会这样?谁能解释一下?
您正在使用hh
12 小时格式(文档中指定的“上午/下午 (1-12) 小时”)。改为使用HH
。
final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
除非您还使用AM/PM 指示符,否则您几乎不应该使用。hh
a
(你真的是想在公元 302 年创建一个时间戳,但出于兴趣吗?)
新的 SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
再次阅读 API。时间符号并非都是小写字符。
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");