java在DTO中将日期类型转换为String格式而不进行迭代

时间:2018-05-09 14:45:48

标签: java spring type-conversion

我试图通过使用日期类型变量和字符串类型变量将日期格式转换为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指针异常,但可能就像数据未在日期类型变量中设置并尝试转换为字符串

3 个答案:

答案 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变量名称在哪里