Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将java System.currentTimeMillis()转换为日期_Java_Python_Date_Formatting_Timestamp - Fatal编程技术网

在python中将java System.currentTimeMillis()转换为日期

在python中将java System.currentTimeMillis()转换为日期,java,python,date,formatting,timestamp,Java,Python,Date,Formatting,Timestamp,我有1970年的时间戳(毫秒)。我想用python将其转换为人类可读的日期。如果真是这样的话,我不会失去一些精确性 我该怎么做 以下内容给出了值错误:在Linux 32位上,时间戳超出了平台时间的范围 #!/usr/bin/env python from datetime import date print date.fromtimestamp(1241711346274) 谢谢,, Maxim.时间戳以毫秒为单位除以1000,以秒为单位 date.fromtimestamp(12417113

我有1970年的时间戳(毫秒)。我想用python将其转换为人类可读的日期。如果真是这样的话,我不会失去一些精确性

我该怎么做

以下内容给出了值错误:在Linux 32位上,时间戳超出了平台时间的范围

#!/usr/bin/env python
from datetime import date
print date.fromtimestamp(1241711346274)
谢谢,,
Maxim.

时间戳以毫秒为单位除以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.0,以便在较旧版本的Python中强制使用浮点。