python 时间戳 时间字符串转换
使用time和datetime包进行转换。环境python2.7.13。
GMT:格林威治时间,BJT:北京时间。
时间戳转为时间字符串:
# -*- coding:utf-8 -*- # 时间戳(GMT)转化为字符串(BJT) import time import datetime timeStamp = 1522165684 # 时间戳是自1970-1-1 0:0:0的秒数 dateArray = datetime.datetime.utcfromtimestamp(timeStamp) # 时间戳计算显示为GMT时间,需要小时+8换算成BJT eightHourAfter = dateArray + datetime.timedelta(hours = 8) timeString = eightHourAfter.strftime("%Y-%m-%d %H:%M:%S") print timeString
时间字符串转化为时间戳:
# -*- coding:utf-8 -*- # 字符串(BJT)转化为时间戳(GMT) import time import datetime a = "2018-03-27 23:48:04" timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") timeStamp = int(time.mktime(timeArray)) print timeStamp # print timeStamp-int(28800) # 特别注意此处不需要再进行-8小时的操作,可以自动转换为GMT时间
可以看出 timestamp在python中一直是以GMT时间计算的。即
timestamp(GMT) --> timeString(GMT) --> +8hours(BJT)
timeString(BJT) --> timestamp(GMT) 不用管小时加减
【待补充:python的time,datetime与时区相关的部分】