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'
這樣,應該符合我們的預期了。呵呵!好傷腦筋!