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
为什么?
有人可以解释一下吗?
答案 0 :(得分:1)
我不知道你期望什么样的输出,但我想你想知道为什么打印0302-02-20 12:00:00
而不是0302-02-20 00:00:00
。那是因为您使用hh
模式来格式化小时。以am / pm格式打印小时。您可以将其与上午/下午标记a
一起使用,也可以使用HH
在24小时内进行格式化。
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