You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中简洁获取本地时间的UTC偏移量(秒级整数)

优化实现方案

你的原代码存在潜在问题:timedelta.seconds仅返回0-86399范围内的秒数,无法正确处理负偏移(比如UTC-5时区),此时会得到错误的正数结果。以下是两种更简洁且准确的实现方式:

方式一:简化现有逻辑(兼容Python 3.6+)

直接通过astimezone()获取带时区的时间,再取偏移的总秒数转int:

from datetime import datetime

utc_offset_seconds = int(datetime.now().astimezone().utcoffset().total_seconds())

方式二:显式指定本地时区(Python 3.9+推荐)

使用zoneinfo模块明确获取本地时区,逻辑更清晰:

from zoneinfo import ZoneInfo
from datetime import datetime

local_timezone = ZoneInfo("local")
utc_offset_seconds = int(datetime.now(local_timezone).utcoffset().total_seconds())

两种方式都会返回正确的秒级偏移量,正数表示UTC+N,负数表示UTC-N,完全符合需求。

内容的提问来源于stack exchange,提问作者Mordechai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:07:03