2024-09-27 21:29:18 发布
网友
我有1970年的时间戳(毫秒)。我想用python把它转换成一个人类可读的日期。如果是这样的话,我不会失去一些精确性。
我该怎么做?
以下给出值错误:时间戳超出Linux 32位上平台时间的范围
#!/usr/bin/env python from datetime import date print date.fromtimestamp(1241711346274)
谢谢你, 马克西姆。
它是以毫秒为单位除以时间戳1000变成以秒为单位。
date.fromtimestamp(1241711346274/1000)
Python需要秒,所以先除以1000.0:
>>> print date.fromtimestamp(1241711346274/1000.0) 2009-05-07
您可以保留精度,因为在Python中,时间戳是一个浮点数。下面是一个例子:
import datetime java_timestamp = 1241959948938 seconds = java_timestamp / 1000 sub_seconds = (java_timestamp % 1000.0) / 1000.0 date = datetime.datetime.fromtimestamp(seconds + sub_seconds)
很明显,您可以使它更紧凑,但是上面的内容适合在REPL中一次键入一行,所以请看它的作用。例如:
Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53) [GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> java_timestamp = 1241959948938 >>> import datetime >>> seconds = java_timestamp / 1000 >>> seconds 1241959948L >>> sub_seconds = (java_timestamp % 1000.0) / 1000.0 >>> sub_seconds 0.93799999999999994 >>> date = datetime.datetime.fromtimestamp(seconds + sub_seconds) >>> date datetime.datetime(2009, 5, 10, 8, 52, 28, 938000) >>>
它是以毫秒为单位除以时间戳1000变成以秒为单位。
Python需要秒,所以先除以1000.0:
您可以保留精度,因为在Python中,时间戳是一个浮点数。下面是一个例子:
很明显,您可以使它更紧凑,但是上面的内容适合在REPL中一次键入一行,所以请看它的作用。例如:
相关问题 更多 >
编程相关推荐