pojo中字符串/日期字段数据类型转换的时间如何解决?
How a when to solve string / date field data type convertion in pojo?
这个问题是关于应用程序设计实践的。我在考虑如何解决 pojo
和应用程序中存在更多数据类型的字段的情况。
在我的 pojo 中有一个 Date
字段。当我手动创建这个 pojo 时,我设置了 Date
,当我从 XML 解析时,我必须处理 String
表示,当它与 JPA
保持一致时,它应该是 Timestamp
.
在这些情况下一般最佳做法是什么?该 pojo 是否应该以两种数据类型表示形式(String
和 Date
)或仅以一种通用形式表示该字段 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% 的情况下,您可能会使用相同的格式,所以我会提取格式化程序。
这个问题是关于应用程序设计实践的。我在考虑如何解决 pojo
和应用程序中存在更多数据类型的字段的情况。
在我的 pojo 中有一个 Date
字段。当我手动创建这个 pojo 时,我设置了 Date
,当我从 XML 解析时,我必须处理 String
表示,当它与 JPA
保持一致时,它应该是 Timestamp
.
在这些情况下一般最佳做法是什么?该 pojo 是否应该以两种数据类型表示形式(String
和 Date
)或仅以一种通用形式表示该字段 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% 的情况下,您可能会使用相同的格式,所以我会提取格式化程序。