1
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 为什么会这样?谁能解释一下?

4

3 回答 3

8

您正在使用hh12 小时格式(文档中指定的“上午/下午 (1-12) 小时”)。改为使用HH

final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

除非您还使用AM/PM 指示符,否则您几乎应该使用。hha

(你真的是想在公元 302 年创建一个时间戳,但出于兴趣吗?)

于 2013-06-12T04:40:39.787 回答
3

新的 SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

再次阅读 API。时间符号并非都是小写字符。

于 2013-06-12T04:40:36.970 回答
2

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

于 2013-07-15T07:36:53.110 回答