java - 如何使 JsonGenerator 漂亮地打印 Date 和 DateTime 值?

标签 java json datetime jackson

我正在使用此方法将任何对象转换为 json 字符串:

private String objectToJson(Object object) throws IOException {
        // write JSON
        StringWriter writer = new StringWriter();
        ObjectMapper mapper = new ObjectMapper();
        final JsonGenerator jsonGenerator = mapper.getJsonFactory().createJsonGenerator(writer);
        jsonGenerator.setPrettyPrinter(new DefaultPrettyPrinter());

        mapper.writeValue(jsonGenerator, object);
        return writer.toString();
    }

当被打印的对象包含java.util.Date 或jodatime 的DateTime 字段时,打印的值是自纪元以来的毫秒数。相反,我想用标准的“HH:MM:SS”符号漂亮地打印它们。我应该怎么做?

最佳答案

因为纪元时间戳(自 1970 年 1 月 1 日以来的毫秒数,UTC)是最有效和准确的时间表示,几乎所有与日期和时间相关的对象都序列化到它。您当然可以覆盖它,如果您想使用问题中提到的格式,则需要将以下内容添加到您的代码中:

DateFormat myDateFormat = new SimpleDateFormat("hh:mm:ss");
objectMapper.getSerializationConfig().setDateFormat(myDateFormat);
objectMapper.getDeserializationConfig().setDateFormat(myDateFormat); 

有关 Jackson JSON 处理器中的日期和时间的更多信息,请参阅以下链接:http://wiki.fasterxml.com/JacksonFAQDateHandling

关于java - 如何使 JsonGenerator 漂亮地打印 Date 和 DateTime 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4442966/

相关文章:

linux - Bash 脚本 : difference in minutes between two times

python - iter() 不适用于 datetime.now()

java - 什么是静态和非静态?何时使用以及如何使用它们?

java - 是否可以删除不需要的标签的文本节点

java - 在 Ant 任务中运行 "headless Eclipse"

json - 在 NativeScript 上获取本地 json 文件

javascript - 如何获得真正的 UTC 时间戳(独立于客户端)?

JavaServlet : How to instantiate thread and receive messages

javascript - 在 JSON 中存储电子邮件验证正则表达式字符串

javascript - Bloodhound,预取保存在我的文件中的 json 文件