我试图在dto类中通过date类型变量和string类型变量将date格式转换为string格式,该变量将保存从date变量格式化的字符串,即不使用迭代解析并将其作为响应发送到ui
private LocalDateTime date_created;
private LocalDateTime date_updated;
private String dateCreated = Utility.getStringDate(date_created);
private String dateUpdated = Utility.getStringDate(date_updated);
当我像上面那样尝试时,我得到了空指针异常,这可能是因为数据没有在日期类型变量中设置,并试图转换为字符串
发布于 2018-05-09 22:50:22
实际上,当date_created字段仍然为空时,字段dateCreated被初始化过一次。
从它们创建方法。
private String dateCreated() { return Utility.getStringDate(date_created); }
private String dateUpdated() { return Utility.getStringDate(date_updated); }
发布于 2018-05-09 23:21:51
我不知道格式化date-time会有什么问题,每次你需要格式化它,需要字符串。但是当你不想这样做的时候,缓存这个字符串。date-time的setter是一个很好的地方,例如(未测试):
public void setDateCreated(LocalDateTime dateCreated) {
this.date_created = dateCreated;
dateCreated = Utility.getStringDate(date_created);
}
如果该值可能为空,那么您当然需要考虑到这一点。
稍微高级一点,只在第一次需要时格式化字符串:
public String getDateCreated() {
if (dateCreated == null && date_created != null) {
dateCreated = Utility.getStringDate(date_created);
}
return dateCreated;
}
如果日期-时间可以更改,您可以在设置器中将字符串设置为null
,以便下次请求一个新字符串时将其格式化。
发布于 2018-07-23 22:08:05
我在mongodb聚合中使用$datetostring和直接赋值给字符串dateCreated变量"from":{ $dateToString: { format: "%Y-%m-%dT%H:%M:%S:%L"+"Z", date: "$from" } },
做到了这一点
其中from是dto变量名
https://stackoverflow.com/questions/50256193
复制相似问题