gpt4 book ai didi

java - 如何在 Java 中设置全局默认日期格式?

转载 作者:行者123 更新时间:2023-11-29 10:06:24 25 4
gpt4 key购买 nike

有没有办法设置用于将字符串解析为日期的默认 DateFormat 类?

我的背景:我从 JDBC 读取日期值时遇到异常,因为日期字符串不是预期的格式。

(文本添加于 2011-07-22):

似乎我需要精确描述我的问题:我使用了一个外国的、专有的数据库和一个专有的 JDBC 驱动程序。不可能知道甚至更改数据库端的列类型。当我尝试通过 ResultSet.getDate() 或 ResultSet.getObject() 读取 ResultSet 列时,在 JDBC 驱动程序内部触发了一些异常,例如“1999 年 7 月 10 日不是有效日期”。我想要实现的是通过设置一些适当的全局默认日期格式来避免这种内部异常。也许我需要先实现一些自定义区域设置,然后在全局范围内安装该区域设置?

最佳答案

应该完全没有这个必要。

日期应作为 DATEDATETIMETIMESTAMP 字段存储在 DB 中,具体取决于所使用的 DB 和您要获取的信息喜欢存储(例如,仅日期或日期和时间组合),而不是作为 VARCHAR 或其他东西。这种特定于日期的字段基本上将值存储为整数/长整数,并以纪元时间作为值。

假设您使用的是日期+时间字段类型,例如 DATETIMETIMESTAMP,那么您应该使用 PreparedStatement#setTimestamp() 将其保存在数据库中.这是一个示例,假设 date 变量属于 java.util.Date。输入:

preparedStatement.setTimestamp(1, new Timestamp(date.getTime()));

您应该使用 ResultSet#getTimestamp() 从数据库中检索它们返回 Timestamp它又是 java.util.Date 的子类,因此您可以安全地向上转换它:

Date date = resultSet.getTimestamp("columnname");

关于将 java.util.Date 对象从/转换为人类可读的 String 格式,这在技术上应该发生在 View 端,而不是在持久层。具体如何执行取决于所使用的 View /UI 技术/框架,例如 Swing、JSP、JSF、Struts2、Spring-MVC 等。由于您的问题不清楚您使用的是哪一个,因此无法给出合适的答案。一般都是用SimpleDateFormat幕后的API。您甚至可以以原始形式使用它。

关于java - 如何在 Java 中设置全局默认日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com