【发布时间】:2020-03-26 19:45:17
【问题描述】:
from datetime import datetime
from django.utils.timezone import make_aware
str_date = "02-05-2020 15:59" # UTC+1
dt = make_aware(datetime.strptime(str_date, '%d-%m-%Y %H:%M'))
print(dt)
使用打印 2020-05-02 15:59:00+00:00 的上述代码。它不应该减去 1 小时并打印 2020-05-02 14:59:00+00:00 吗?
TIME_ZONE = 'UTC' 和 USE_TZ = True in settings.py。
这会从我的 Ubuntu 机器日期中减去 1 小时
from django.utils import timezone
now = timezone.now()
print(now)
【问题讨论】:
-
它怎么知道是UTC+1?您只是将其写为评论。默认情况下,
make_aware()使用您的默认时区,即您所说的 UTC。 -
@KevinChristopherHenry 这与我的机器时间格式相同,即 UTC+1。
-
不过,操作系统的时间与解析日期无关。你写了一个日期时间字符串,把它转换成一个简单的日期时间,然后让 Django 让它知道使用 UTC 时区。所以 UTC+1 没有涉及。如果您想使用不同的时区,请参阅
make_aware()的文档。 -
你解决了吗?我在下面提供了答案
标签: python django python-3.x