pojo中字符串/日期字段数据类型转换的时间如何解决?

How a when to solve string / date field data type convertion in pojo?

这个问题是关于应用程序设计实践的。我在考虑如何解决 pojo 和应用程序中存在更多数据类型的字段的情况。

在我的 pojo 中有一个 Date 字段。当我手动创建这个 pojo 时,我设置了 Date,当我从 XML 解析时,我必须处理 String 表示,当它与 JPA 保持一致时,它应该是 Timestamp.

在这些情况下一般最佳做法是什么?该 pojo 是否应该以两种数据类型表示形式(StringDate)或仅以一种通用形式表示该字段 Date 并且在从 String 解析时将其从 [= 转换为 Date 13=]?

问题 #2:如何将此日期值从 String 转换为 Date - 作为 pojo class 中的静态方法?将其放入某些外部实用程序 class.

编辑 #1:我对这些 pojo-s 使用 Builder 模式。

我喜欢我的域 classes 具有丰富的 Date - DateTime (joda) 表示形式。 Joda 提供了大量的方法来让你操纵日期,所以在我看来这是最好的选择。当我必须将日期写入 xml 或数据库时,我会转换它们。

您正在使用构建器模式,因此您可以提供多种设置日期的方法。例如:

private DateTime createdOn;
...
public Builder createdOn(final DateTime createdOn) {
    this.createdOn = createdOn;
    return this;
}

public Builder createdOn(final String createdOn) {
    this.createdOn = DateTime.parse(createdOn, dateTimeFormatter);
    return this;
}

public Builder createdOn(final Date createdOn) {
    this.createdOn = new DateTime(createdOn);
    return this;
}

String 和 Date 之间的转换只是一个简单的调用,所以我认为它不必是单独的实用程序 class。另一件事是格式化程序。它必须知道日期以何种格式写入 String。在 95% 的情况下,您可能会使用相同的格式,所以我会提取格式化程序。