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
这是为什么?
谁能解释一下?
我不知道您期望什么样的输出,但我假设您想知道为什么它打印0302-02-20 12:00:00
而不是0302-02-20 00:00:00
. 那是因为您正在使用hh
模式来格式化小时。以上午/下午格式打印小时。您可以将它与 am/pm 标记一起使用,也可以a
在 24 小时内使用HH
.
final DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
会打印0302-02-20 12:00:00 am
.
final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
会打印0302-02-20 00:00:00
.
有关模式的更多信息在这里。http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html