如何将 100 纳秒 Gregorian bigint 值转换为 Python 中的日期时间?

How do I convert a 100 nanosecond Gregorian bigint value to a datetime in Python?

所以我有一个 bigint 值,表示自公历 12:00:00 midnight, January 1, 0001 以来经过的 100 纳秒间隔的数量。

一个例子是637564207744054251。我在 PostgreSQL 中找到了这个值和其他类似的值,我需要使用 Python 将其转换为 MM/DD/YYYY HH:MM:SS 格式。

谁能帮我弄清楚该怎么做?

结合使用datetimetimedelta

from datetime import datetime, timedelta

duration_ns = 637564207744054251 * 100 # number of 100-nanosecond intervals
duration = timedelta(microseconds=duration_ns / 1000)

start = datetime(1, 1, 1, 0, 0, 0)
end = start + duration

end_str = end.strftime('%m/%d/%y %H:%M:%S')
print(end_str)  # 05/12/21 12:52:54