如何在Python中从毫秒创建datetime ?

如何在Python中从毫秒创建datetime ?我可以通过java.util.Date(milliseconds)在Java中创建一个类似的Date对象。

分配一个Date对象并将其初始化为表示自称为“the epoch”的标准基准时间(即格林尼治标准时间1970年1月1日00:00:00)以来的指定毫秒数。

220615 次浏览

只需将其转换为时间戳

datetime.datetime.fromtimestamp(ms/1000.0)

这个呢?我认为它可以处理1970年之前和2038年之后的日期。

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

正如在Python标准库中提到的:

fromtimestamp()可能引发ValueError,如果时间戳超出 C localtime()或gmtime()平台支持的值范围 功能。这通常被限制在1970年 到2038年。< / p >

很明显,这可以在一行中完成:

target_dt = datetime(1970, 1, 1) + timedelta(milliseconds=target_dt_ms)

因为使用熊猫,所以有点重,但有效:

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


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

将millis转换为datetime (UTC):

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