将 iso 格式日期时间字符串转换为 Python 中的日期时间对象
Convert iso format datetime string to datetime object in Python
我在 Python 3.6 中将 iso 格式的日期时间字符串转换为日期时间对象时遇到问题,而不会丢失时区信息。
字符串是这样的
2021-07-04T00:00:00+02:00
我尝试了datetime.datetime.strptime方法。但是无法设置正确的格式字符串。
datetime.datetime.strptime( "2021-07-04T00:00:00+02:00", "%Y-%m-%dT%H:%M:%S%z")
如果日期时间字符串采用这种格式,则它有效:
datetime.strptime("2021-07-04T00:00:00+0200", "%Y-%m-%dT%H:%M:%S%z")
但在这种格式下,不起作用:
datetime.datetime.strptime( "2021-07-04T00:00:00+02:00", "%Y-%m-%dT%H:%M:%S%z")
我有这种格式的日期时间:
2021-07-04T00:00:00+02:00
对于Python 3.7+你可以使用datetime.datetime.fromisoformat()
函数,也
strptime("2021-07-04T00:00:00+02:00", "%Y-%m-%dT%H:%M:%S%z")
会很好。
对于 Python 3.6 及更低版本,时区格式预计为 ±HHMM
。因此,您必须在使用 strptime
之前转换字符串(删除最后一个分号)。
例如:
tz_found = t_str.find('+')
if tz_found!=-1 and t_str.find(':', tz_found)!=-1:
t_str = t_str[:tz_found+3] + t_str[tz_found+4:tz_found+6]
result = datetime.datetime.strptime( t_str, "%Y-%m-%dT%H:%M:%S%z")
我在 Python 3.6 中将 iso 格式的日期时间字符串转换为日期时间对象时遇到问题,而不会丢失时区信息。 字符串是这样的
2021-07-04T00:00:00+02:00
我尝试了datetime.datetime.strptime方法。但是无法设置正确的格式字符串。
datetime.datetime.strptime( "2021-07-04T00:00:00+02:00", "%Y-%m-%dT%H:%M:%S%z")
如果日期时间字符串采用这种格式,则它有效:
datetime.strptime("2021-07-04T00:00:00+0200", "%Y-%m-%dT%H:%M:%S%z")
但在这种格式下,不起作用:
datetime.datetime.strptime( "2021-07-04T00:00:00+02:00", "%Y-%m-%dT%H:%M:%S%z")
我有这种格式的日期时间:
2021-07-04T00:00:00+02:00
对于Python 3.7+你可以使用datetime.datetime.fromisoformat()
函数,也
strptime("2021-07-04T00:00:00+02:00", "%Y-%m-%dT%H:%M:%S%z")
会很好。
对于 Python 3.6 及更低版本,时区格式预计为 ±HHMM
。因此,您必须在使用 strptime
之前转换字符串(删除最后一个分号)。
例如:
tz_found = t_str.find('+')
if tz_found!=-1 and t_str.find(':', tz_found)!=-1:
t_str = t_str[:tz_found+3] + t_str[tz_found+4:tz_found+6]
result = datetime.datetime.strptime( t_str, "%Y-%m-%dT%H:%M:%S%z")