Мне нужно преобразовать filetime в datetime. Я использую этот код filetime.py, от here как упоминалось в этой теме Datetime to filetime (Python).python конвертировать filetime в datetime для дат до 1970
В коде
EPOCH_AS_FILETIME = 116444736000000000 # January 1, 1970 as MS file time
HUNDREDS_OF_NANOSECONDS = 10000000
def filetime_to_dt(ft):
"""Converts a Microsoft filetime number to a Python datetime. The new datetime object is time zone-naive but is equivalent to tzinfo=utc.
>>> filetime_to_dt(116444736000000000)
datetime.datetime(1970, 1, 1, 0, 0)
"""
# Get seconds and remainder in terms of Unix epoch
(s, ns100) = divmod(ft - EPOCH_AS_FILETIME, HUNDREDS_OF_NANOSECONDS)
# Convert to datetime object
dt = datetime.utcfromtimestamp(s)
# Add remainder in as microseconds. Python 3.2 requires an integer
dt = dt.replace(microsecond=(ns100 // 10))
return dt
datetime.utcfromtimestamp
не принимает отрицательное значение на окна системы, поэтому я не могу конвертировать FILETIME до 1 янв 1970. Но я могу преобразовать даты до 1970 года на Mac, используя один и тот же код (причина here). Есть ли способ обхода окон?
Итак, все, что вы имеете в виду, означает, что вы хотите конвертировать некоторое время в нормальное время? – harshil9968