0
在Python 3.x上datetime.utcnow().isoformat()
沒有給出時區指示符,datetime.now(timezone.utc).isoformat
給出+00:00
。任何方式強迫使用Z
(祖魯時區)?如何獲取ISO格式化字符串中當前時間爲'Z'而不是'+00:00'「?
在Python 3.x上datetime.utcnow().isoformat()
沒有給出時區指示符,datetime.now(timezone.utc).isoformat
給出+00:00
。任何方式強迫使用Z
(祖魯時區)?如何獲取ISO格式化字符串中當前時間爲'Z'而不是'+00:00'「?
的天真簡單明瞭的方式是
from datetime import datetime, timezone
datetime.utcnow().isoformat()+'Z' # '2015-06-09T07:17:55.719302Z'
datetime.utcnow()
返回上UTC天真datetime
,isoformat
因爲其中N不會添加任何時區一個在天真的日期時間,然後我們手動添加'Z'
,因爲我們知道它實際上在UTC /祖魯時區
或者如果您碰巧在UTC有的UTC時間,您可以放下時區(make第一個datetime
的副本)和.isoformat()+'Z'
。
from datetime import datetime, timezone
datetime.now(timezone.utc).replace(tzinfo=None).isoformat()+'Z'
# '2015-06-09T07:17:55.719302Z'
如果時區意識到datetime
是不是UTC,那麼你需要把它帶到了UTC時區第一。
from datetime import datetime,timezone
from dateutil.tz import tzutc
datetime.now(tzoffset("BRST", -10800)).astimezone(tzutc()).replace(tzinfo=None).isoformat()+'Z'
# '2015-06-09T08:14:02.861058Z'
注:「天真」的方式並不天真。在這種情況下,這是正確的方式(可讀性,性能)。你可能意味着使用天真的日期時間對象的方式。 – jfs