目前的这个时间格式:
deadline 格式如下:
31-Jan-2019 23:59 (GMT -3.00) 或 24-Dec-2018 02:30 (GMT 0.00) 或 21-Jan-2019 17:00 (GMT 1.00)
pub 格式如下: 17-Dec-2018,
我想把 deadline 转换为北京时间 格式如下,
deadline: 2019-02-01 10:59
pub: 2018-12-17
然后我写了一个函数:
def transition_date(self, deadline, pub):
deadline_data = re.search(r'(\d+-\w+-\d+ \d+:\d+)', deadline).group(1)
gtm1 = re.search(r'\(GMT (-?\d+)\.(\d+)\)', deadline).group(1)
gtm2 = re.search(r'\(GMT (-?\d+)\.(\d+)\)', deadline).group(2)
gtm = 8 * 3600 - float(gtm1) * 3600 - float(gtm2) * 60
deadline_data = time.mktime(time.strptime(deadline_data, "%d-%b-%Y %H:%M"))
deadline_data = deadline_data + gtm
result_deadline = time.strftime("%Y-%m-%d %H:%M", time.localtime(deadline_data))
pub_date = time.strptime(pub, "%d-%b-%Y")
pub_date = pub_date
result_pub = time.strftime("%Y-%m-%d", pub_date)
return result_deadline, result_pub
我个人的理解就是: 关于 pub 时间转换很容易
关于 deadline 的时间转换是:假如: 北京时间是 GTM 8:00,如果获取的时间是 GTM 1:00 就把时间加上 7 小时就是北京时间,如果获取的时间是 GTM 9:00 就把时间减去 1 小时就是北京时间;我这样理解对吗?我有点不太确定
1
la2la OP 函数 多了个 self 参数。。。。,大家不要介意
|
2
Sylv 2018-12-18 15:29:16 +08:00 via iPhone
建议使用 datetime 配合 pytz 库来处理时区转换,不要自己手动计算。
|