java - 使用 JsonNode 错误地解析日期字段

标签 java json jackson

我正在从 cassandra 表中读取数据记录。创建我构建的 Java 对象。使用我从数据记录中获得的值设置所有值(我使用 jackson 从记录中获取这些值)。当我查看 json 请求时,我看到一个很长的类似值。想知道它是什么格式吗?那为什么是负数呢?这是我得到的...

JsonNode ccEventNode = new ObjectMapper().readTree(row.getString(0));
ccEventNode.get("last_pyflt_dt")

这给了我一个值“1901-01-01”。然后我...

CCEvent ccEvent = new CCEvent;
ccEvent.getHistory().setLast_pyflt_dt(new SimpleDateFormat("yyyy-MM-dd").parse(ccEventNode.get("last_pyflt_dt").textValue()));

这为我刚刚设置的日期字段提供了一个值“Tue Jan 01 00:00:00 EST 1901”

但是当我完成设置所有其他值后读取 JSON 请求时,我看到的值是...

"lastPaymentFloatDate":-2177434800000

我的第一个问题是。这个值是多少?是从某个日期算起的分钟数吗?为什么是负数?当我将其发送到网络服务时,它引起了问题。当我有其他类似“2020-02-04”的日期时,它不会引起任何问题。它还在请求中向我显示了与上面类似的大量数字,但它不是负数。有点困惑。

最佳答案

-2177434800000纪元时间之前的毫秒数。
纪元时间为 1 一月 1970 00:00:00,被视为 0 毫秒。在它之前和之后的任何时间都是正值。将纪元时间视为数轴中的 0
您可以阅读更多相关信息herehere .

此外,您还可以验证 epoch convertor website. 上的 -2177434800000 是否代表 1901-01-01

关于java - 使用 JsonNode 错误地解析日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60568043/

相关文章:

java - 在lucene中获取精确的短语索引

Java ServerSocket 连接限制?

json - JMESPATH 用于计算以特定字符串开头的值的数量

arrays - JSON 中有数组深度限制吗?

java - 如何转义json?

java - 澄清Java线程的概念

java - 单个 RMI 服务的简单入口点?

java - 自定义 JSON 序列化和反序列化

javascript - 使用 JavaScript 解析 JSON

android - 如何修复使用 Jackson/Gson 库解析的不准确的日期时间(分钟)?