如何从纪元以来的时间轻松创建日期时间对象?

How to easily create a datetime object from time with unit since epoch?

假设我得到了一个自纪元以来的时间戳(以微秒为单位)1611590898133828 考虑到单位 microseconds.

,我如何轻松地将其转换为日期时间对象
from datetime import datetime
timestamp_micro = 1611590898133828
dt = datetime.datetime.fromtimestamp(timestamp_micro / 1e6)

我希望能够进行简单的转换,因为有时我需要微秒、有时是秒、有时是纳秒来转换。

timestamp_micro = 1611590898133828
dt = datetime.datetime.fromtimestamp(timestamp_micro, unit="us")

这有可能吗?对我来说,使用 python 的日期时间包只是一种痛苦。也许您还可以推荐另一个时间戳处理更容易的包?

您只需调用 const dt = new Date(timestamp) 即可创建新的 javascript 日期对象。这里的 timestamp 值是一个精确到毫秒的纪元。 JavaScript 本机支持更高的精度。

如果您经常需要处理日期,我建议您使用 momentJS 等软件包,因为处理原生 JS 非常痛苦dates/times。

pandas.to_datetime provides the option to set the unit as a keyword:

import pandas as pd

t, UNIT = 1611590898133828, 'us'

dt = pd.to_datetime(t, unit=UNIT)

print(dt, repr(dt))
# 2021-01-25 16:08:18.133828 Timestamp('2021-01-25 16:08:18.133828')

您现在可以使用 pandas 时间戳或转换为常规 Python 日期时间对象,例如

dt.to_pydatetime()
# datetime.datetime(2021, 1, 25, 16, 8, 18, 133828)

另请注意,如果您在不设置时区的情况下使用 fromtimestamp,您将获得天真的日期时间,[=] 会将其视为 当地时间 24=](UTC 偏移量可能不是 0)。参见例如here.