提问人:adamkwn 提问时间:5/23/2023 最后编辑:LinFelixadamkwn 更新时间:5/25/2023 访问量:226
Java Spring Boot - 以字符串而不是嵌套形式获取日期和时间
Java Spring Boot - Get date and time as string instead of nested
问:
我收到了一个Java Spring Boot应用程序,我只需要更改一件事。 在我处理的 json 数据中的其他数据中,我有以下内容:
"valueSetAt":{
"dateTime":{
"date":{
"year":2023,
"month":5,
"day":2
},
"time":{
"hour":13,
"minute":1,
"second":36,
"nano":335000000
}
},
"offset":{
"totalSeconds":0
},
"zone":{
"id":"UTC"
}
}
我需要将这种形式的日期和时间转换为格式的日期时间
"startTime":
"2023-03-31T13:00:00.000Z"
问题是,在转换之前我无法做任何事情,因为这种错误的格式来自我无法查看或更改任何内容的 API。来自 API 的开发人员表示,当他们将数据处理为 json 时发生了转换。 本质上,我认为我需要的是将上述日期和时间从 ZonedDateTime 转换为字符串?
答:
0赞
Irremediable
5/23/2023
#1
看来你的问题已经有答案了。
目前尚不清楚你是这些值的使用者还是生产者,但在两者的情况下,你可以通过指定 getter 和 setter 来处理它,并在其上添加适当的注释:
public class DtoObject {
private ZonedDateTime dateTimeField;
// Used during serialization
@JsonProperty("startTime")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
public ZonedDateTime getStartTime() {
return dateTimeField;
}
// Used during deserialization
// eg. @JsonFormat(pattern = "yyyy-MM-dd")
public void setDateTimeField(ZonedDateTime dateTimeField) {
this.dateTimeField = dateTimeField;
}
}
评论
0赞
adamkwn
5/23/2023
我都不是。我正在使用 API 并接收这些数据。然后我正在处理它们并以不同的格式发送它们。我的问题是我无法将上面的json转换为日期时间字符串(正如我所提到的)。
0赞
Irremediable
5/23/2023
如果你正在使用 API,处理一些,然后发送,那么这意味着你正在使用其他人的 api 并生成你自己的 api。提供的链接和提供的代码中的解决方案应该可以帮助您
评论