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

1 回答 1

1

我不知道您期望什么样的输出,但我假设您想知道为什么它打印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

于 2013-09-25T04:29:57.673 回答