如何在几毫秒内在Python中创建日期时间?

时间:2009-04-14 17:01:03

标签: python datetime

我可以通过java.util.Date(milliseconds)在Java中创建一个类似的Date对象。如何在Python中创建可比较的文档?

  

分配一个Date对象并对其进行初始化,以表示自标准基准时间(即“epoch”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。

5 个答案:

答案 0 :(得分:152)

只需将其转换为时间戳

即可
datetime.datetime.fromtimestamp(ms/1000.0)

答案 1 :(得分:8)

这个怎么样?我认为它可以指望处理1970年之前和2038年之后的日期。

target_date_time_ms = 200000 # or whatever
base_datetime = datetime.datetime( 1970, 1, 1 )
delta = datetime.timedelta( 0, 0, 0, target_date_time_ms )
target_date = base_datetime + delta

如Python标准lib中所述:

  如果时间戳不在,那么

fromtimestamp()可能会引发ValueError   平台支持的值范围C localtime()或gmtime()   功能。这种情况通常限于1970年   到2038年。

答案 2 :(得分:2)

import pandas as pd

Date_Time = pd.to_datetime(df.NameOfColumn, unit='ms')

答案 3 :(得分:0)

由于使用了熊猫而有点笨,但是可以用:

import pandas as pd
pd.to_datetime(msec_from_java, unit='ms').to_pydatetime()

答案 4 :(得分:0)

将毫秒转换为日期时间(UTC):

import datetime
time_in_millis = 1596542285000
dt = datetime.datetime.fromtimestamp(time_in_millis / 1000.0, tz=datetime.timezone.utc)

按照RFC3339标准(由Open API规范使用)将日期时间转换为字符串:

from rfc3339 import rfc3339
converted_to_str = rfc3339(dt, utc=True, use_system_timezone=False)
# 2020-08-04T11:58:05Z