如何处理返回不同格式日期时间的 API 的 LocalDateTime? [复制]
Posted
技术标签:
【中文标题】如何处理返回不同格式日期时间的 API 的 LocalDateTime? [复制]【英文标题】:How to handle a LocalDateTime from API that returns datetime in different format? [duplicate] 【发布时间】:2020-08-15 00:03:43 【问题描述】:我正在使用一个 rest 模板调用 Java 中的 API,它返回这个对象:
@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
public class MyObject
//@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime accessTime;
private String name;
问题是 API 检索到的 accessTime 看起来像这样:
2020-04-29 12:52:57
而且我不能使用 LocalDateTimeDeserializer。
这是以下错误:
Can not deserialize value of type java.time.LocalDateTime from String \"2020-04-29 12:52:57\": Text '2020-04-29 12:52:57' could not be parsed at index 10
我该如何处理?谢谢
【问题讨论】:
请this question and its accepted answer帮忙? 假设您使用的是JavaTimeModule
,Jackson 已经在使用LocalDateTimeDeserializer
,因此注释您的字段将是多余的。
@deHaar 我在发布我的问题之前看到了这个答案,但是在“@DateTimeFormat(iso = DateTimeFormatter.ofPattern("yyyy-MM-dd HH)”处出现以下错误“属性值必须是恒定的” :mm"))"
【参考方案1】:
我猜您正在寻找一种方法,该方法将从 API 接收本地日期时间字符串,然后使用此方法并存储转换后的 localdatetime 格式。这是可以帮助您的方法:
private LocalDateTime TryPase(string accessTime)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); //edit your format
return LocalDateTime.parse(accessTime, formatter);
【讨论】:
谢谢,但我想避免使用方法,因为对象是在 restTemplate 发布期间直接映射的,这就是我寻找 JsonFormatter 或其他什么的原因 这确实是一个更好的选择以上是关于如何处理返回不同格式日期时间的 API 的 LocalDateTime? [复制]的主要内容,如果未能解决你的问题,请参考以下文章