1. 引入相关库
import datetime
from timezonefinder import TimezoneFinder
import pandas as pd
2. 函数(参数为年月日时分秒、纬度、经度)
2.1 获取经纬度对应的时区
tf = TimezoneFinder(in_memory=True) # 将相应的时区信息读入内存中
time_zone = tf.timezone_at(lng=lon, lat=lat) # 得到对应的时区
print(time_zone)
输出结果(以80°N,40°E)为例:
2.2 获取时间序列
local_time = datetime.datetime(year, month, day, hour, minute, second)
local_time_str = local_time.strftime('%Y-%m-%d %H:%M:%S') # 获取时间字符串
test_naive = pd.date_range(local_time_str, local_time_str) # 开始结束时间一致,获取时间索引
2.3 建立LT时并将LT时转化为UTC时
test_LT = test_naive.tz_localize(time_zone) # 建立local time时
test_UTC = test_LT.tz_convert('UTC') # LT时转化为UTC时
2.4 删除时区信息
test_local_naive = test_UTC.tz_localize(None) # 去掉对应时区信息格式
2.5 输出
str1 = test_local_naive[0].strftime("%Y-%m-%d %H:%M:%S") # 将时间戳转为字符串
UTC_time = datetime.datetime.strptime(str1, "%Y-%m-%d %H:%M:%S") # 转为datetime格式
3.调用函数
print(LT_to_UTC(2023, 4, 16, 15, 2, 36, 40, 80))