Python中带时区的日期转换工具类总结
在Python中,有时候需要对带时区的日期进行转换,此时可以使用Python标准库中的datetime和pytz模块。下面总结了几个常用的日期转换工具类。
1. 将本地时间转换为UTC时间
import datetime
import pytz
def get_utc_time(local_time_str, local_time_format):
local_time = datetime.datetime.strptime(local_time_str, local_time_format)
local_time = pytz.timezone('Asia/Shanghai').localize(local_time) # 将本地时间添加上时区
utc_time = local_time.astimezone(pytz.utc) # 将本地时间转换为UTC时间
utc_time_str = utc_time.strftime('%Y-%m-%d %H:%M:%S') # 将UTC时间转换为字符串
return utc_time_str
上述代码中,get_utc_time函数接受两个参数:本地时间(local_time_str)和本地时间格式(local_time_format)。首先,将本地时间字符串转换为datetime对象,并添加上对应的时区;再将本地时间转换为UTC时间;最后,将UTC时间转换为字符串并返回。下面是一个示例:
local_time_str = '2021-09-01 09:30:00'
local_time_format = '%Y-%m-%d %H:%M:%S'
utc_time_str = get_utc_time(local_time_str, local_time_format)
print(utc_time_str)
运行结果为:2021-09-01 01:30:00。这个时间是本地时间9点30分转换为UTC时间后的结果。
2. 将UTC时间转换为本地时间
import datetime
import pytz
def get_local_time(utc_time_str, local_time_format):
utc_time = datetime.datetime.strptime(utc_time_str, '%Y-%m-%d %H:%M:%S')
utc_time = pytz.timezone('UTC').localize(utc_time) # 将UTC时间添加上时区
local_tz = pytz.timezone('Asia/Shanghai') # 本地时区
local_time = utc_time.astimezone(local_tz) # 将UTC时间转换为本地时间
local_time_str = local_time.strftime(local_time_format) # 将本地时间转换为字符串
return local_time_str
上述代码中,get_local_time函数接受两个参数:UTC时间(utc_time_str)和本地时间格式(local_time_format)。首先,将UTC时间字符串转换为datetime对象,并添加上对应的时区;再将UTC时间转换为本地时间;最后,将本地时间转换为字符串并返回。下面是一个示例:
utc_time_str = '2021-09-01 01:30:00'
local_time_format = '%Y-%m-%d %H:%M:%S'
local_time_str = get_local_time(utc_time_str, local_time_format)
print(local_time_str)
运行结果为:2021-09-01 09:30:00。这个时间是UTC时间1点30分转换为本地时间后的结果。
总结
通过上述两个示例,可以看出,使用datetime和pytz模块结合起来,可以方便地对带时区的日期进行转换。在转换的过程中,需要注意地方就是在添加时区,并进行时区的转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中带时区的日期转换工具类总结 - Python技术站