SimpleDateFormat 未显示正确的日期格式

发布于 2024-12-28 08:13:17 字数 331 浏览 1 评论 0原文

我的 SQL 数据库中有一个 DateTime 字段,当我尝试在 JSP 页面中显示它并使用“dd-MM-yyyy hh:mm:ss”对其进行格式化时,它仅正确显示日期部分。例如,对于存储在数据库中的日期“2012-01-19 12:13:48”,它显示“19-01-2012 12:00:00”。可能是什么问题?

代码:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
sdf.format(rs.getDate("comment_date")); //rs -> ResultSet

I have a DateTime field in my SQL database holding and when I try to show it in my JSP page and format it using "dd-MM-yyyy hh:mm:ss", it displays correctly only the date part. For example, for the date "2012-01-19 12:13:48" stored in the database it shows "19-01-2012 12:00:00". What may be the problem?

Code:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
sdf.format(rs.getDate("comment_date")); //rs -> ResultSet

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

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

发布评论

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

评论(2

烟若柳尘 2025-01-04 08:13:17

来自 java.sql.Date 的 javadoc:

为了符合 SQL DATE 的定义,java.sql.Date 实例包装的毫秒值必须通过将特定时区中的小时、分钟、秒和毫秒设置为零来“标准化”。实例已关联。

为了保留时间信息,您应该使用java.sql.Timestamp。换句话说,将 rs.getDate() 更改为 rs.getTimestamp()

From the javadoc for java.sql.Date:

To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.

In order to preserve time information as well, you should be using java.sql.Timestamp. In other words, change rs.getDate() to rs.getTimestamp().

雨的味道风的声音 2025-01-04 08:13:17

您可以查看一个有趣的日期/时间库:Joda Time。它解决了标准库中日期/时间实现的许多问题。

An interesting date/time library you could have a look at is Joda Time. It solves many issues of the date/time implementations in the standard library.

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