将Python中的浮点时间戳转换为Java中的日期

1 投票
1 回答
1902 浏览
提问于 2025-04-18 09:33

我有一个REST服务,它接收一个JSON对象。这个JSON里面有一个时间戳的值。当我把这个JSON对象转换成Java类时,我用一个长整型变量(long),然后用new Date(long)来得到一个合适的日期对象。之前一切都很顺利,因为客户端(Java和JavaScript)发送的时间戳都是长整型的。

现在我们要为这个服务添加一个Python客户端,我想从Python发送长整型的时间戳。但是Python中的time.time()方法总是返回一个浮点数。所以我决定在我的REST服务的Java类中使用一个双精度变量(double),这样我就能正确获取时间戳了。但是,我该如何把这个双精度变量转换成Date对象呢?有没有什么好主意?

1 个回答

4

看了下文档(之前从没用过Python),发现time.time()这个方法返回的是自1970年1月1日以来的秒数,而Java的Date对象在构造时需要的是自1970年1月1日以来的毫秒数

所以你需要做一些复杂的数学运算,把秒数转换成毫秒数。根据我刚刚读的Python文档,似乎在Python代码里把秒数转换成毫秒数会更简单,然后把结果作为长整型传给其他服务。具体要多精确,你可以直接把time.time()的结果乘以1000,这样就能得到毫秒数,然后再把结果四舍五入,去掉小数部分。

撰写回答