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

如何在Python中自动获取本地时区的当前日期时间?

解决Python获取本地时区时间及VS Code时区显示问题

一、Python获取本地时区当前时间的正确方法

你之前的代码存在调用错误:get_localzone是函数,需要加括号调用get_localzone()才能返回时区对象,而非直接传入函数本身。如果调用后仍返回UTC,大概率是环境变量或系统时区识别异常,以下是可靠解决方案:

方案1:Python 3.9+内置zoneinfo模块(推荐)

无需额外安装依赖,直接调用系统本地时区:

from datetime import datetime
from zoneinfo import ZoneInfo

# 获取带本地时区的当前时间
local_dt = datetime.now(tz=ZoneInfo("local"))
print(local_dt)

方案2:修复tzlocal的使用逻辑

先确保tzlocal安装正确(pip install tzlocal),再按正确方式调用,同时排查环境变量:

from datetime import datetime
from tzlocal import get_localzone

# 正确调用函数获取时区对象
local_tz = get_localzone()
local_dt = datetime.now(local_tz)
print(local_dt)

若仍返回UTC,检查系统TZ环境变量:

  • Linux/macOS终端执行echo $TZ,Windows终端执行echo %TZ%,如果输出为UTC,删除该环境变量后重新运行脚本。

方案3:正确使用astimezone()

你之前的调用返回UTC,可能是进程时区被强制设置,试试先生成无时区的时间再转本地时区:

from datetime import datetime

# 生成无时区的当前时间,再转换为本地时区
naive_dt = datetime.now()
local_dt = naive_dt.astimezone()
print(local_dt, local_dt.tzinfo)

二、解决VS Code显示UTC时区的问题

VS Code的运行环境可能继承了错误的时区配置,可尝试以下操作:

  • 检查.vscode/launch.json配置,若存在"TZ": "UTC"这类环境变量设置,直接删除该配置项。
  • 完全重启VS Code,确保它重新读取系统时区设置。
  • 在VS Code终端临时修复时区:
    • Linux/macOS:export TZ=$(cat /etc/timezone)
    • Windows(PowerShell):Set-Item Env:TZ (Get-TimeZone).Id

内容的提问来源于stack exchange,提问作者M Waqar Anwar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:32:39