使用strptime获取UTC偏移量,小时和分钟之间分开

问题描述 投票:0回答:1

我有一个像这样的字符串

2018-04-03 02:59:59+00:00
,我需要使用
strptime
将其转换为日期时间。

但是,查看 docs

%z
(UTC 偏移量)指令是
+HHMM
,但我需要
+HH:MM
。我怎样才能做到这一点?

python datetime
1个回答
9
投票

Python 3.7+

Python 3.7 添加了解析 RFC 3339 日期和时间的功能。

>>> from datetime import datetime >>> txt = "2018-04-03 02:59:59+00:00" >>> fmt = "%Y-%m-%d %H:%M:%S%z" >>> datetime.strptime(txt, fmt) datetime.datetime(2018, 4, 3, 2, 59, 59, tzinfo=datetime.timezone.utc)
在3.7+中,您还可以使用更简单的

datetime.fromisoformat

方法:

>>> datetime.fromisoformat(txt) datetime.datetime(2018, 4, 3, 2, 59, 59, tzinfo=datetime.timezone.utc)
Python 

< 3.7

这是不可能的,因为偏移量中存在冒号字符,即

datetime.strptime

 会解析像 
-0600
 这样的偏移量,但不能解析 
-06:00
。因此,选择以下解决方法之一:

© www.soinside.com 2019 - 2024. All rights reserved.