从 Hibernate 时间戳检索日期

发布于 2024-12-06 09:27:34 字数 400 浏览 1 评论 0原文

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

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

但是当向用户显示值时,我只想显示日期部分和截断时间部分。我尝试了这个,但我得到 ParseException 可能是因为 Hibernate 时间戳的纳秒部分。

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

那么如何从 Hibernate 时间戳中检索日期呢?谢谢

I have a field with temporal type as Timestamp to save both date and time to the database.

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

But when displaying the value to the user, I just want to show date part and truncate time part. I tried this but I get ParseException probably because of the Nanosecond part of the Hibernate Timestamp.

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

So how do I retrieve just date from Hibernate Timestamp? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情场扛把子 2024-12-13 09:27:34

只需格式化日期对象即可。 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();
}

Just format the date object. The toString method isn't guaranteed to give you a string in a format that can then be parsed.

String dateStr = sd.format(date);

That will give you a date string in MM/dd/yyyy format that you can then convert back into a Date.

Date fancyNancy = sd.parse(dateStr);

* EDIT *

Run this code and verify it prints out the day, month and year with no time.

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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文