您的位置:首页 > 其它

如何将一个格林威治字符串时间格式化转换为本地时间

2015-09-12 11:03 495 查看
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'


这样,应该符合我们的预期了。呵呵!好伤脑筋!
本文出自 “诡迹” 博客,请务必保留此出处http://unixman.blog.51cto.com/10163040/1694035
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: