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

如何在Django中获取本地日期与时间?已尝试方案存在异常

在Django中获取本地日期与时间的正确姿势

嘿,我明白你遇到的问题了!你之所以用timezone.localtime(timezone.date())和timezone.localtime(timezone.time())会报错,是因为timezone.date()和timezone.time()返回的是date对象和time对象,而localtime()函数只接受datetime类型的参数来做时区转换,所以自然会出错啦。

想要得到和原生datetime格式一致的结果,其实只需要调整一下步骤:先获取本地时区的完整datetime对象,再从中提取日期和时间就可以了,和你用原生datetime.datetime.now()后调用.date()/.time()的逻辑完全一致。

正确的代码示例

from django.utils import timezone

# 先获取本地时区的datetime对象(这一步你已经写对啦)
local_now = timezone.localtime(timezone.now())
# 或者更简洁的写法:timezone.localtime() 默认会用 timezone.now() 作为参数
# local_now = timezone.localtime()

# 获取本地日期,和原生datetime.datetime.now().date()结果一致
local_date = local_now.date()
# 打印出来会是类似 '2020-04-28' 的格式,类型是 datetime.date

# 获取本地时间,和原生datetime.datetime.now().time()结果一致
local_time = local_now.time()
# 打印出来会是类似 '17:57:34.120383' 的格式,类型是 datetime.time

更快捷的方式

Django其实还提供了直接获取本地日期的快捷方法,不用先拿到datetime对象:

# 直接获取本地时区的日期
local_date = timezone.localdate()

# 直接获取本地时区的时间的话,还是需要先转成datetime再提取
local_time = timezone.localtime().time()

这样处理后,得到的结果就和你用原生datetime模块获取的完全一致啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 13:03:13