Преобразование метки времени Microsoft в формат даты и времени ISO 8601 - PullRequest
1 голос
/ 03 августа 2020

Недавно я наткнулся на новый формат метки времени, который я раньше не видел, он называется «Microsoft Timestamp» и означает дни, прошедшие с декабря c 31 1899. Я попытался поискать в Интернете, есть ли любой метод в python, способный преобразовать этот формат в ISO 8601 и наоборот, но не нашел ничего полезного.

т.е. согласно https://www.silisoftware.com/tools/date.php?inputdate=43981.7155208333350&inputformat=microsoft 43981.715520833 относится к 2020- 05-30T17: 10: 21 + 00: 00

1 Ответ

0 голосов
/ 03 августа 2020

Вы можете написать свою собственную функцию, используя модуль datetime :

from datetime import datetime, timedelta

def microsoft_to_iso8601(microsoft):
    base_date = datetime(1899, 12, 31)
    ret_date = base_date + timedelta(days=microsoft)
    return ret_date.isoformat()

print(microsoft_to_iso8601(43981.7155208333350))
# returns 2020-05-31T17:10:21

Приведенная выше функция создает один datetime.datetime объект, base_date, который хранит базовую дату «Метка времени Microsoft»: 31 декабря 1899 г.

ret_date - это первая дата плюс количество дней, прошедших с этой даты, представленное «меткой времени Microsoft». Функция возвращает эту дату, преобразованную в строку ISO-8601.

...