如何將一個格林威治字符串時間格式化轉換爲本地時間

python 時間函數學習了一大堆,那到底怎麼將一個格林威治的時間字符串轉換爲本地時間呢?


這裏將以一個格林威治時間字符串轉換爲北京時間爲例進行說明。


格林威治時間字符串:2015-08-31T11:20:48


首先將這個字符串轉換爲表示時間的tuple格式:

>>> t=time.strptime('2015-08-31T11:20:48','%Y-%m-%dT%H:%M:%S')
>>> t
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=31, tm_hour=11, tm_min=20, tm_sec=48, tm_wday=0, tm_yday=243, tm_isdst=-1)


此時,字符串就可以通過touple格式進行表示了。那隻要將表示時(hour)的數字加上8,再以我們能看懂的日誌格式表示出來就OK了。但python中,tuple是不能夠被改變的(概念有點模糊了,應該是)。


那只有這麼辦了

>>> i=list(t)
>>> i
[2015, 8, 31, 11, 20, 48, 0, 243, -1]
>>> i[3] = i[3] + 8
>>> i
[2015, 8, 31, 19, 20, 48, 0, 243, -1]


此時,就差怎麼表示成大家都能看懂的格式了。

>>> time.strftime('%Y-%m-%d %H:%M:%S',tuple(i))
'2015-08-31 19:20:48'


這樣,應該符合我們的預期了。呵呵!好傷腦筋!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章