将java sql timestamp转换为String

时间:2017-04-04 23:58:07

标签: java

我在将sql时间戳转换为字符串时遇到一些麻烦,它们的输出是不同的。

@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date auctionStart;

public void setTime(){
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String aucStartString = f.format(auctionStart);


}

我的拍卖开始日期打印:2017年4月4日17:14:10 当我将它转换为字符串时,它打印:2017-04-04 05:14:10

看起来时间正在转换为12小时格式,任何想法如何纠正?

2 个答案:

答案 0 :(得分:2)

尝试使用H代替h作为Class SimpleDateFormat javadoc的小时。

  • H小时(0-23)0号
  • k小时(1-24)24号
  • 上午/下午的K小时(0-11)数字0
  • h上午/下午(1-12)12号小时

    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

<强>更新

Date auctionStart = new Date(2017-1900,4,4,17,14,10);

    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String aucStartString = f.format(auctionStart);
    System.out.println(aucStartString);

打印

2017-05-04 17:14:10

答案 1 :(得分:0)

根据SimpleDateFormat javadoc,您需要

SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

编辑,因为我最初把'kk&#39;而不是&#39; HH&#39;这很可能不是你想要的。 &#39; KK&#39;将小时显示为1-24,而&#39; HH&#39;将小时显示为更常见的0-23。