将Python中的浮点时间戳转换为Java中的日期
我有一个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,这样就能得到毫秒数,然后再把结果四舍五入,去掉小数部分。