我试图通过使用日期类型变量和字符串类型变量将日期格式转换为dto类中的字符串格式,该变量将保存字符串格式化的fromdate变量, 即不使用迭代进行解析并将其作为响应发送给ui
private LocalDateTime date_created;
private LocalDateTime date_updated;
private String dateCreated = Utility.getStringDate(date_created);
private String dateUpdated = Utility.getStringDate(date_updated);
虽然尝试如上所述我得到Null指针异常,但可能就像数据未在日期类型变量中设置并尝试转换为字符串
答案 0 :(得分:0)
确实,date_created字段初始化了一次dateCreated字段 仍然是空的。
从他们那里制作方法。
private String dateCreated() { return Utility.getStringDate(date_created); }
private String dateUpdated() { return Utility.getStringDate(date_updated); }
答案 1 :(得分:0)
我不知道每次需要格式化格式化日期时间会出现什么问题,需要字符串。但是当你不想这样做时,请缓存字符串。您的日期时间的设定者是一个很好的地方,例如(未经测试):
public void setDateCreated(LocalDateTime dateCreated) {
this.date_created = dateCreated;
dateCreated = Utility.getStringDate(date_created);
}
如果值可能为null,则需要考虑到这一点。
略高级,只在您第一次需要时格式化字符串:
public String getDateCreated() {
if (dateCreated == null && date_created != null) {
dateCreated = Utility.getStringDate(date_created);
}
return dateCreated;
}
如果可以更改日期时间,您可以在设置器中将字符串设置为null
,以便下次要求时将格式化新字符串。
答案 2 :(得分:0)
我在mongodb聚合中使用$ datetostring进行了此操作,并直接分配给字符串dateCreated变量
"from":{ $dateToString: { format: "%Y-%m-%dT%H:%M:%S:%L"+"Z", date: "$from" } },
dto变量名称在哪里