import re from datetime import datetime, timezone, timedelta def to_timestamp(dt_str, tz_str): day = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') utc = re.match(r'UTC([+-]\d+)\:(\d+)', tz_str) offset = float(utc.group(1)+'.'+utc.group(2)) day_utc = day.replace(tzinfo=timezone(timedelta(hours=offset))) return day_utc.timestamp() # 测试: t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00') assert t1 == 1433121030.0, t1 t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00') assert t2 == 1433121030.0, t2 print('ok')
timestamp是相对于1970年1月1日 00:00:00 UTC+00:00时区的秒数差。
1、相同的timestamp,通过fromtimestamp()获得的本地datetime在不同时区是不一样的,通过utcfromtimestamp()获得的UTC时间是一样。
2、相同的datetime,通过date.timestamp() 函数转换后获得的timestamp是不一样的,因为会根据本地时区相对于UTC时区的偏移值自动调整。
3、timestamp()函数是根据tzinfo来转换的。
Sign in to make a reply
方大侠百宝箱
timestamp是相对于1970年1月1日 00:00:00 UTC+00:00时区的秒数差。
1、相同的timestamp,通过fromtimestamp()获得的本地datetime在不同时区是不一样的,通过utcfromtimestamp()获得的UTC时间是一样。
2、相同的datetime,通过date.timestamp() 函数转换后获得的timestamp是不一样的,因为会根据本地时区相对于UTC时区的偏移值自动调整。
3、timestamp()函数是根据tzinfo来转换的。