【问题标题】:Retreving date from Hibernate TImestamp从 Hibernate TImestamp 中检索数据
【发布时间】:2011-09-24 01:56:21
【问题描述】:

我有一个时间类型为 Timestamp 的字段,用于将日期和时间保存到数据库中。

@Temporal(TemporalType.TIMESTAMP)
@Column(name="date", nullable=false)
private Date date;

但是在向用户显示值时,我只想显示日期部分并截断时间部分。我试过这个,但我得到 ParseException 可能是因为休眠时间戳的纳秒部分。

 SimplDateFormat sd = new SimpleDateFormat("MM/dd/yyyy");
 return sd.parse(date.toString());

那么我如何从 Hibernate Timestamp 中仅检索日期?谢谢

【问题讨论】:

    标签: java hibernate timestamp


    【解决方案1】:

    只需格式化日期对象。 toString 方法不能保证给你一个可以被解析的格式的字符串。

    String dateStr = sd.format(date);
    

    这将为您提供 MM/dd/yyyy 格式的日期字符串,然后您可以将其转换回日期。

    Date fancyNancy = sd.parse(dateStr);
    

    * 编辑 *

    运行此代码并验证它是否打印出没有时间的日期、月份和年份。

    try {
        Date d = new Date();
        SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");
        System.out.println("Original Date: " + d);
        System.out.println("Formatted Date: " + df.parse(df.format(d)));
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    【讨论】:

    • 感谢您的回复.. 没有给我想要的 SimpleDateFormat sd = new SimpleDateFormat("MM/dd/yyyy"); return sd.parse(sd.format(created)); 导致 Fri Sep 02 11:12:34 EDT 2011
    • 您不应该获得时间组件,但是当您打印出日期时,它将以该格式显示。您是否尝试获取日期组件或其字符串表示形式?
    • javadocs 解释了如何使用日期和时间模式(带有示例)为日期和时间的任意组合指定格式字符串。 docs.oracle.com/javase/6/docs/api/java/text/…
    猜你喜欢
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2015-01-09
    • 2016-05-17
    • 2015-11-06
    • 2013-03-29
    相关资源
    最近更新 更多