Python 时区转换解释
跨不同时区转换时间是 Python 中的一项常见任务。本问题探讨了如何有效地执行此转换。
推荐的方法是将感兴趣的时间转换为 UTC 感知的日期时间对象。这是因为 Python 中的 datetime 对象本身并不包含时区信息。
时间采用 UTC 格式后,您可以使用 astimezone 函数将其转换为所需的时区。例如,请考虑以下代码:
<code class="python">from datetime import datetime import pytz utcmoment_naive = datetime.utcnow() utcmoment = utcmoment_naive.replace(tzinfo=pytz.utc)</code>
这会将当前 UTC 时间转换为 UTC 感知的日期时间对象。要转换为特定时区,请使用以下命令:
<code class="python">localDatetime = utcmoment.astimezone(pytz.timezone('America/Los_Angeles'))</code>
这会将 UTC 时间转换为洛杉矶的太平洋时间 (PT)。
在时间可能不存在的情况下由于夏令时或其他因素而转换的时区,您可以使用以下方法:
<code class="python">localmoment_naive = datetime.strptime('2013-09-06 14:05:10', '%Y-%m-%d %H:%M:%S') localtimezone = pytz.timezone('Australia/Adelaide') try: localmoment = localtimezone.localize(localmoment_naive, is_dst=None) print("Time exists") utcmoment = localmoment.astimezone(pytz.utc) except pytz.exceptions.NonExistentTimeError as e: print("NonExistentTimeError")</code>
此尝试将本地时间转换为 UTC,处理由于夏令时时间可能不存在的可能性时间。
以上是如何在 Python 中转换时区:综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!