分享一个Python不同时区时间转换的方法,主要有2中返回格式,一个是返回datetime格式,一个是返回str格式,需要请自行食用:
import datetimeimport pytz# src_timezone:原始时区# dst_timezone:目标时区# src_format:原始格式# 返回datetime格式def src2dst_time(src_timezone, dst_timezone, dst_time_str, src_format='%Y-%m-%d %H:%M:%S'):est_tz = pytz.timezone(src_timezone) # 标注时间的时区local_tz = pytz.timezone(dst_timezone) # 北京时区# local_format = "%Y-%m-%d %H:%M:%S" # 所需要的时间打印格式est_dt = datetime.datetime.strptime(dst_time_str, src_format)local_dt = est_dt.replace(tzinfo=est_tz).astimezone(local_tz) # 将原有时区换成我们需要的# time_str = local_dt.strftime(local_format)return local_dt# src_timezone:原始时区# dst_timezone:目标时区# src_format:原始格式# src_format:原始格式# 返回格式化的strdef src2dst_str(src_timezone, dst_timezone, dst_time_str, src_format='%Y-%m-%d %H:%M:%S', dst_format='%Y-%m-%d %H:%M:%S'):est_tz = pytz.timezone(src_timezone) # 标注时间的时区local_tz = pytz.timezone(dst_timezone) # 北京时区# dst_format = "%Y-%m-%d %H:%M:%S" # 所需要的时间打印格式est_dt = datetime.datetime.strptime(dst_time_str, src_format)local_dt = est_dt.replace(tzinfo=est_tz).astimezone(local_tz) # 将原有时区换成我们需要的time_str = local_dt.strftime(dst_format)return time_strtime_datetime = src2dst_time("Etc/GMT-3", "Asia/Chongqing", "2021-10-02 20:29:19")print(time_datetime)print(type(time_datetime))time_str = src2dst_str("Etc/GMT-3", "Asia/Chongqing", "2021-10-02 20:29:19", "%Y-%m-%d %H:%M:%S", "%Y/%m/%d %H:%M:%S")print(time_str)print(type(time_str))# 执行结果:# 2021-10-03 01:29:19+08:00# <class 'datetime.datetime'># 2021/10/03 01:29:19# <class 'str'>
未经允许不得转载:VPS啦 » 分享一个Python不同时区时间转换的方法