我正在使用Pandas的tz_localize函数将日期从当地时间转换为UTC:

time_zone = 'America/Santiago'    
pd.to_datetime(pd.to_datetime(df['mydate']).apply(lambda x: datetime.strftime(x, '%d-%m-%Y %H:%M:%S'))).dt.tz_localize(time_zone).dt.tz_convert('UTC').dt.tz_localize(None)

这很好用,但现在我想在将用户定义的time_zone传递到tz_localize之前判断它是否实际存在.我在网上找到了lists of available countries个,但我不知道如何在Python中直接访问这些信息.

我已经看到了关于zoneinfothis page的信息,但我正在寻找一种巨 Python /Pandas 的替代品.

推荐答案

使用标准库的zoneinfotzdata:

# pip install tzdata  # already shipping with pandas
import zoneinfo

all_tz = zoneinfo.available_timezones()

if time_zone in all_tz:
    # your code

或者,使用pytz(现已弃用):

import pytz

if time_zone in pytz.all_timezones_set:
    # your code

如果您使用的是python<;3.9,则可以使用以下命令来模拟zoneinfo.available_timezones函数:

from importlib import resources

with resources.files('tzdata').joinpath('zones').open('r') as f:
    all_tz = set(x.strip('\n') for x in f.readlines())

if time_zone in all_tz:
    # your code

Python相关问答推荐

Pandas或pyspark跨越列创建

Odoo onchange for invoice_Status of sale事件.订单未触发

在后台运行的Python函数

将numpy数组与空数组相加

将嵌套列表的字典转换为数据框中的行

Numpy索引argsorted使用integer数组,同时保留排序顺序

通过优化空间在Python中的饼图中添加标签

如何计算两极打印机中 * 所有列 * 的出现次数?

在Google Colab中设置Llama-2出现问题-加载判断点碎片时Cell-run失败

使可滚动框架在tkinter环境中看起来自然

在Mac上安装ipython

pyscript中的压痕问题

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

我如何根据前一个连续数字改变一串数字?

driver. find_element无法通过class_name找到元素'""

多指标不同顺序串联大Pandas 模型

使用groupby方法移除公共子字符串

Plotly Dash Creating Interactive Graph下拉列表

如何在Python中获取`Genericums`超级类型?

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像