1

我在我的应用程序中使用 Hibernate 来存储“时间”(小时、分钟、秒)。我正在使用 Hibernate 来管理我的实体。我在我的实体中使用了 JPA 注释 @TemporalType.Time,如下所示:

@Temporal(TemporalType.TIME)
public Date getTime_out() {
    return time_out;
}

我正在存储从 Web 服务请求中获得的字符串形式的时间,如下所示:

            DateFormat df = new SimpleDateFormat("hh:mm:ss");
            Date date = null;
            try {
                date = df.parse(timeHHMM);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我希望 Web 请求采用特定格式(我知道这可能不是正确的做法,但我只是在进行试验)。将字符串转换为日期后,我在实体上设置时间并将其保存在数据库中。

当我的输入为 08:00:00 时,它按预期存储为 08:00:00。当它是 13:00:00(下午 1 点)时,它存储为 13:00:00,这是我想要的。但是,当我的输入是 12:00:00(下午 12 点)时,它存储为 00:00:00。

我在这里错过了什么吗?

谢谢!

4

1 回答 1

3

您使用了错误的日期格式。hh以 am/pm 格式指定一个小时,因此 12:00:00 默认为 12am (00:00:00)。

你需要:

SimpleDateFormat("HH:mm:ss")
于 2012-08-21T02:21:54.143 回答