import re from datetime import datetime,timedelta,timezone def to_timestamp(dt_str, tz_str): dt = datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S') #利用datetime方法转化字符串为datetime类实例 delta = re.search(r'([+-]\d+)\:',tz_str).group(1) #利用正则表达式search方法筛选时区字符串中的数 tz = timezone(timedelta(hours=int(delta))) #根据时区数生成timezone类实例 utc_dt = dt.replace(tzinfo=tz) #利用datetime的replace方法在不改变时间的前提下设置时区,不能用astimezone方法因为 会同时改变时间 return utc_dt.timestamp() #返回设置时区后的datetime类实例的时间戳
一开始用astimezone方法,时间戳一直不对,原来是这个方法在设置时区的同时会改变时间,换成replace设置时区就没问题了
是我没认真看,replace是设置时区,astimezone是转换时区,之前一直在想这两个有什么区别,做完作业就明白了
Sign in to make a reply
黄方方方方
一开始用astimezone方法,时间戳一直不对,原来是这个方法在设置时区的同时会改变时间,换成replace设置时区就没问题了