0
鑑於表示UTC時間下面的Python DateTime對象:的Python:將UTC時間,本地時間給UTC偏移
2016年9月15日22:13:03-2:00
我想以獲得相應的本地時間日期時間,其中施加UTC偏移:
2016年9月15日20點13分03秒
我希望能找到datetime模塊的方法,這是能夠做到這一點,但我沒有成功。任何幫助非常感謝。
問候
鑑於表示UTC時間下面的Python DateTime對象:的Python:將UTC時間,本地時間給UTC偏移
2016年9月15日22:13:03-2:00
我想以獲得相應的本地時間日期時間,其中施加UTC偏移:
2016年9月15日20點13分03秒
我希望能找到datetime模塊的方法,這是能夠做到這一點,但我沒有成功。任何幫助非常感謝。
問候
我不知道這是不是最好的答案,但這裏是我對你的。通常我不會這麼做,因爲它是最好使用UTC時間和轉換
這裏有一個例子:
value = datetime.datetime.strptime(str(utc_datetime), '%Y-%m-%d %H:%M:%S').replace(tzinfo=pytz.utc)
value = value.astimezone(pytz.timezone("America/Los_Angeles"))
我無法使用日期時間的語法有點過所以我繼續使用dateutil.parser將其轉換爲一個DateTime對象
>>> from dateutil.parser import parse
>>> val = parse('2016-09-15 22:13:03-2:00')
還有其他的方法來設置一個DateTime對象,UTC,但我覺得pytz是最容易
>>> import pytz
>>> utc_val = val.replace(tzinfo=pytz.utc)
這是這兩個值的輸出。在這裏,我搶三角洲和減去它
>>> val, utc_val
(datetime.datetime(2016, 9, 15, 22, 13, 3, tzinfo=tzoffset(None, -7200)), datetime.datetime(2016, 9, 15, 22, 13, 3, tzinfo=<UTC>))
>>>
>>> delta = val - utc_val
我刪除了tzinfo因爲這是一個轉換的日期時間值
>>> local_dt = (val - delta).replace(tzinfo=None)
>>> local_dt
datetime.datetime(2016, 9, 15, 20, 13, 3)
>>> str(local_dt)
'2016-09-15 20:13:03'
爲什麼會UTC時間的調整來表達?除此之外,這個對象是如何構造的?這真的是一個'datetime.datetime'對象,或者只是一個你需要解析和轉換的字符串? – ShadowRanger
使用什麼python版本? – davedwards
我正在使用Python 2.7。這是一個日期時間對象。 – Aghie