我正在使用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
https://docs.djangoproject.com/en/3.2/topics/i18n/timezones/#naive-and-aware-datetime-objects
你应使用:
Datetime不知道时区
您可以使用.strftime()剪切时区信息(偏移量+02:00)。您需要将其包含在%z中
如果要将其转换为已添加偏移量的时间字符串
打开.astimezone(timezone.utc).strftime(“%Y-%m-%d%H:%m:%S.%f”)
这对我有用
相关问题 更多 >
编程相关推荐