MicroPython 中没有办法解析 ISO 日期时间对象吗?我的 Raspberry Pi Pico 调用包含 ISO 8601 格式的日期项目的 REST API:
{"title":"Green","date":"2023-10-18T00:00:00"}
但是 MicroPython 似乎只有一个 time 函数,而不是 datetime 函数,并且 time 函数似乎无法解析字符串。
例如,我基本上需要将 ISO 字符串转换为“Wednesday 18”。
有一种算法可以确定给定日期是星期几,适用于 1753 年以来的日期。
sample = {"title":"Green","date":"2023-10-18T00:00:00"}
def day_string_from_iso8601_date(date_str):
month_keys = (1,4,4,0,2,5,0,3,6,1,4,6)
days_of_week = ("Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
[yyyy, mm, dd] = [int(i) for i in date_str.split('T')[0].split('-')]
leap_year_modifier = 0
if ((yyyy % 400 == 0) or (yyyy % 100 != 0) and (yyyy % 4 == 0)) and mm in (1, 2):
leap_year_modifier = -1
a = yyyy % 100
b = a // 4
year_modifier = 0
if yyyy < 1800:
year_modifier = 4
elif 1799 < yyyy < 1900:
year_modifier = 2
elif 1999 < yyyy < 2100:
year_modifier = -1
day = (a + b + dd + month_keys[mm-1] + leap_year_modifier + year_modifier) % 7
return f"{days_of_week[day]} {dd}"
day_string_from_iso8601_date(sample["date"])
输出:
'Wednesday 18'