【问题标题】:HIBERNATE : Don't want to save milliseconds休眠:不想节省毫秒
【发布时间】:2014-03-20 15:10:35
【问题描述】:

我遇到了一个小问题,我在网上没有找到合适的解决方案,因为我的问题对于搜索引擎来说有点棘手。

关于休眠节省毫秒的话题很多。但我的问题是别的。

事实上,我有一个数据库,它保存我的日期是这样的:

2014-03-20 10:58:09

我使用 Hibernate 来取回我的日期,并将其显示在网页上。但是 Hibernate 检索的不止于此:它还检索 0 毫秒,如下所示:

2014-03-20 10:58:09.0

许多人似乎对此有疑问,但就我而言,我不想要此信息,我希望 Hibernate 检索日期没有此 .0

感谢您的帮助!

编辑和解决方案:

好的,所以我使用了一个小技巧。

在我使用 Hibernate 的特定对象中,我有这个方法:

public Date getModificationDate() {
      return modificationDate;
   }

我只是简单地创建另一个方法:

private static final SimpleDateFormat FMT = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");

public String getModificationDateLabel() {
        if (modificationDate != null) {
            return FMT.format(modificationDate);
        }
        return null;
}

所以,当我在我的网页中显示(我使用 Velocity 模板)时,我只是遍历我的对象列表并显示标签:

#foreach( $object in $objects)
$!{object.modificationDateLabel}
#end

SimpleDateFormat 允许我删除 .0,并且通过创建一个新方法,我不会干扰使用 Hibernate 获取日期的行为。

感谢您的宝贵时间!

【问题讨论】:

  • 你使用的是哪个休眠版本?
  • SimpleDateFormat 使用不包括毫秒的格式。
  • 你如何显示它?您需要在显示日期之前格式化您的日期,仅仅调用toString 不会让您有任何帮助。
  • 我显示在网页中(使用 Velocity),但是当我检索我的数据时,它位于特定对象的列表中。我无法用 SimpleDateFormat 解析它。

标签: java hibernate


【解决方案1】:

我认为返回的日期“2014-03-20 10:58:09.0”等于“2014-03-20 10:58:09”没有问题。您能否提供可能导致问题的具体场景?

或者使用 SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 然后在使用日期之前以这种格式解析您的日期。

【讨论】:

  • 嗯,问题是我需要在网页上显示日期。我只是在特定对象列表中检索我的所有数据。当我显示它时,我看到格式为“2014-03-20 10:58:09.0”的日期,但我不想看到 .0。
  • 在某些情况下管理来自多个类的多个日期,使用 SimpleDateFormat 将是一种真正的痛苦,更不用说如果有一天你想改变你的解决方案。
猜你喜欢
  • 2011-05-10
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-13
  • 2019-03-07
  • 2010-09-10
  • 2010-09-27
相关资源
最近更新 更多