【发布时间】:2017-01-16 13:44:42
【问题描述】:
我的 UI 中的日期采用 dd/mm/yyyy 格式。 DB 中的日期为 yyyy-mm-dd 格式。 我需要在 UI 和数据库之间来回转换日期。
DTO 和实体日期的类型为 java.util.Date。 我正在使用 spring 的 BeanUtils.copyProperties(source, destination),来来回设置 dto 和 entity 的属性。
我有以下解决方案: 1.实现JPA AttributeConverter 2. 使用自定义 Java 注解 3. 使用简单的日期格式转换器实用程序类。 日期格式转换器的最佳方法是什么。
我的技术栈是:
- jQuery
- JDK 7
- 春天 4
- JPA
【问题讨论】:
-
"数据库中的日期是 yyyy-mm-dd 格式" - 为什么您的数据库使用字符串来表示日期?大多数数据库都有日期类型...我建议您使用它,此时您可以坚持使用特定于域的类型,而不是转换为特定格式。
-
我们使用的是sql server,它只是日期格式,但数据类型是日期。
-
如果数据库中的数据类型是
Date,那么您不应该将其作为文本处理- 将其作为日期处理。见PreparedStatement.setDate等。 -
您在数据库中有 DATE,并且您将 java.util.Date / java.sql.Date 字段保存到其中。格式化与该过程完全无关。格式仅与您的 GUI 相关
-
我们使用 jpa 进行 CRUD 操作。从 ui 以 dd/mm/yyyy 格式发送日期时,未保存日期。但以 yyyy-mm-dd 格式发送时会保存。