首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java将日期类型转换为DTO中的字符串格式,无需迭代

java将日期类型转换为DTO中的字符串格式,无需迭代
EN

Stack Overflow用户
提问于 2018-05-09 22:45:48
回答 3查看 1K关注 0票数 0

我试图在dto类中通过date类型变量和string类型变量将date格式转换为string格式,该变量将保存从date变量格式化的字符串,即不使用迭代解析并将其作为响应发送到ui

代码语言:javascript
运行
复制
private LocalDateTime date_created;
private LocalDateTime date_updated;

private String dateCreated = Utility.getStringDate(date_created);    
private String dateUpdated = Utility.getStringDate(date_updated);

当我像上面那样尝试时,我得到了空指针异常,这可能是因为数据没有在日期类型变量中设置,并试图转换为字符串

EN

回答 3

Stack Overflow用户

发布于 2018-05-09 22:50:22

实际上,当date_created字段仍然为空时,字段dateCreated被初始化过一次。

从它们创建方法。

代码语言:javascript
运行
复制
private String dateCreated() { return Utility.getStringDate(date_created); }
private String dateUpdated() { return Utility.getStringDate(date_updated); }
票数 0
EN

Stack Overflow用户

发布于 2018-05-09 23:21:51

我不知道格式化date-time会有什么问题,每次你需要格式化它,需要字符串。但是当你不想这样做的时候,缓存这个字符串。date-time的setter是一个很好的地方,例如(未测试):

代码语言:javascript
运行
复制
    public void setDateCreated(LocalDateTime dateCreated) {
        this.date_created = dateCreated;
        dateCreated = Utility.getStringDate(date_created);
    }

如果该值可能为空,那么您当然需要考虑到这一点。

稍微高级一点,只在第一次需要时格式化字符串:

代码语言:javascript
运行
复制
    public String getDateCreated() {
        if (dateCreated == null && date_created != null) {
            dateCreated = Utility.getStringDate(date_created);
        }
        return dateCreated;
    }

如果日期-时间可以更改,您可以在设置器中将字符串设置为null,以便下次请求一个新字符串时将其格式化。

票数 0
EN

Stack Overflow用户

发布于 2018-07-23 22:08:05

我在mongodb聚合中使用$datetostring和直接赋值给字符串dateCreated变量"from":{ $dateToString: { format: "%Y-%m-%dT%H:%M:%S:%L"+"Z", date: "$from" } },做到了这一点

其中from是dto变量名

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50256193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档