gpt4 book ai didi

Java Jackson 配置日期

转载 作者:行者123 更新时间:2023-12-01 13:46:14 26 4
gpt4 key购买 nike

我正在使用 jackson 配置器来序列化 - 反序列化日期。

我正在用这个

SerializationConfig serConfig = mapper.getSerializationConfig();
serConfig.setDateFormat(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss z"));

DeserializationConfig deserializationConfig = mapper.getDeserializationConfig();
deserializationConfig.setDateFormat(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss z"));

现在,如果我通过 10/10/2013 02:30:00 EST 它允许我这样做,但 10/10/2013 02:30:00 给出我的错误。

如何让配置器解析两者?

最佳答案

您不应该传递没有时区的日期时间。这样做是无稽之谈,毫无意义。就像保存没有区号的本地电话号码一样。

jackson 将其日期保存在 UTC 中。时区。这意味着根本没有时区。因此,您传递的日期时间必须有一个时区,以便 Jackson 可以将值调整为 UTC。我实际上并不了解或使用 jackson ,但这就是医生所说的。

如果传递日期时间的代码知道或者可以推断或推断时区,则应该这样做并附加时区。

如果您传递的日期时间已采用 UTC 格式,则添加时区“Z”,即 Zulu .

注意:使用 3 个字母的时区代码不是一个好的做法。它们没有标准化并且经常有重复。您的示例中的 EST 值表示全局至少 3 个时区:US, Australia, and Brazil 。使用name of time zone相反。

提示:如果您在 Java 中进行任何日期处理,请获取第三方 Joda-Time库而不是使用 java.util.Date/Calendar 类。

关于Java Jackson 配置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20355386/

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