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

如何使用Python的datetime模块获取时区调整后的星期几?

解决指定时区下的星期几获取问题

首先要纠正一个误区:dt.date.today()返回的是本地系统时区的日期,并非UTC时区。另外,date类型是无时区感知的,所以它没有astimezone()方法,这也是你那段代码无法运行的原因。

要准确获取指定时区(比如GMT)的星期几,核心是先拿到带时区信息的当前datetime对象,再提取日期并获取星期数,具体实现可以参考以下两种简便方法:

方法1:直接获取指定时区的当前时间

import datetime as dt
import pytz

# 获取GMT时区的当前datetime(带时区信息)
gmt_datetime = dt.datetime.now(pytz.gmt)
# 提取日期后获取星期几(0代表周一,6代表周日)
weekday = gmt_datetime.date().weekday()

方法2:从UTC时间转换到目标时区

如果你的业务逻辑需要从UTC时间出发转换,也可以这么写:

import datetime as dt
import pytz

# 获取UTC时区的当前datetime
utc_datetime = dt.datetime.now(pytz.utc)
# 转换为GMT时区
gmt_datetime = utc_datetime.astimezone(pytz.gmt)
# 获取星期几
weekday = gmt_datetime.date().weekday()

补充说明

  • 若需要其他时区,只需将pytz.gmt替换为对应时区字符串即可,比如北京时间用pytz.timezone('Asia/Shanghai')
  • weekday()返回值范围是0(周一)到6(周日);如果需要以周日为一周起始(0=周日,6=周六),可以改用isoweekday()方法(返回1=周一,7=周日)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 07:24:18