我正在使用 Django,但在需要計算的日期方面遇到問題。變數資料 > 測驗應該是 17:00 而不是 15:00。為什么我一格式化日期就會發生這種情況?
我的時區是歐洲/柏林。更改時區必須影響測驗中的時間列印。它總是 -2h
def date(req):
now = timezone.now()
model = MyModel.objects.filter(date__gt=now).first()
next = model.date
future = timezone.timedelta(hours=float(model.future)) #model.future = 1.5
open = next-future
date = next.strftime('%Y/%m/%d')
data = {
'next': next,
'date': date,
'time': open.astimezone(timezone.utc).strftime('%Y-%m-%d %H:%M:%S.%f'),
'test': open.strftime('%Y/%m/%d %H:%M:%S%z')
}
我得到的:
next: 20. November 2021 18:30
date: 2021/11/20
time: 2021-11-20 15:15:00.000000
test: 2021/11/20 15:00:00 0000
uj5u.com熱心網友回復:
https://docs.djangoproject.com/en/3.2/topics/i18n/timezones/#naive-and-aware-datetime-objects
你應該使用:
from django.utils import timezone
now = timezone.now()
日期時間不知道時區。
uj5u.com熱心網友回復:
您使用 .strftime() 剪切時區資訊(偏移量 02:00)。你需要用 %z 包含它。
如果您想將其轉換為已添加偏移量的時間字串。
open.astimezone(timezone.utc).strftime('%Y-%m-%d %H:%M:%S.%f')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/326722.html
