gpt4 book ai didi

java - Jackson ObjectMapper 不尊重配置的日期时间格式

转载 作者:行者123 更新时间:2023-12-02 11:07:16 49 4
gpt4 key购买 nike

我很可能遗漏了一些东西,但是,我无法配置对象映射器以使用给定的日期时间格式。使用相同的日期格式化程序(用于配置对象映射器)解析日期时间字符串可以成功解析相同的日期时间字符串。这是相关代码。

    String eventTimeString = "2018-06-13 20:22:00";
String jsonString = "{\"event_time\":\""+eventTimeString+"\"}";

// configure date formatter
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

// configure object mapper
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(sdf);

// parse json string using configured object mapper
Map<String, Object> jsonDataMap = mapper.readValue(jsonString, new TypeReference<Map<String, Object>>() {});

// print event time class as parsed by object mapper
System.out.println("event time class: " + (jsonDataMap.get("event_time").getClass().getName()));

// test parsing date time field
System.out.println(sdf.parse(eventTimeString));

我得到的输出是:

event time class: java.lang.String
Thu Jun 14 01:52:00 IST 2018

我在这里做错了什么?

谢谢...

最佳答案

你错过了一件小事。您应该将类​​型解析为 Map<String, Date>而不是Map<String, Object>如下:

        Map<String, Date> jsonDataMap = mapper.readValue(jsonString, new TypeReference<Map<String, Date>>() {});

关于java - Jackson ObjectMapper 不尊重配置的日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50872647/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com