将 Microsoft 时间戳转换为 ISO 8601 日期时间格式
Convert Microsoft Timestamp to ISO 8601 Datetime format
最近我遇到了以前从未见过的新时间戳格式,它称为“Microsoft 时间戳”,意思是自 1899 年 12 月 31 日以来的天数。
我试图在网上搜索以查看 python 中是否有任何方法能够将此格式转换为 ISO 8601,反之亦然,但没有找到任何有用的方法。
即根据 https://www.silisoftware.com/tools/date.php?inputdate=43981.7155208333350&inputformat=microsoft
43981.715520833 指的是 2020-05-30T17:10:21+00:00
您可以使用 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 时间戳”的基准日期:1899 年 12 月 31 日。
ret_date
是第一个日期加上自“Microsoft 时间戳”表示的该日期以来经过的天数。函数returns将这个日期转换成ISO-8601字符串。
最近我遇到了以前从未见过的新时间戳格式,它称为“Microsoft 时间戳”,意思是自 1899 年 12 月 31 日以来的天数。 我试图在网上搜索以查看 python 中是否有任何方法能够将此格式转换为 ISO 8601,反之亦然,但没有找到任何有用的方法。
即根据 https://www.silisoftware.com/tools/date.php?inputdate=43981.7155208333350&inputformat=microsoft 43981.715520833 指的是 2020-05-30T17:10:21+00:00
您可以使用 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 时间戳”的基准日期:1899 年 12 月 31 日。
ret_date
是第一个日期加上自“Microsoft 时间戳”表示的该日期以来经过的天数。函数returns将这个日期转换成ISO-8601字符串。