问题描述
我正在尝试创建一个入门应用程序。其中一个页面从用户处输入我的时区的当前日期和时间(我已将TIME_ZONE设置为“ Asia / Kolkata”),并将其保存在数据库中。查看此页面的功能:
def new_entry(request):
date = timezone.Now()
date = date.replace(second=0,microsecond=0)
just_date = date.strftime('%d %B %Y')
just_time = date.strftime('%H:%M')
if request.method == 'POST':
content = request.POST.get('content')
ent = Entry(user=request.user,date=date,content=content)
ent.save()
return redirect('user')
return render(request,'mainapp/new_entry.html',{'date':just_date,'time':just_time})
然后在另一个页面中,我从数据库中获取并显示所有这些日期。该页面的查看功能:
def user(request):
if request.method == 'POST':
user_entries = Entry.objects.filter(user=request.user)
return render(request,'mainapp/user.html',{'user_entries':user_entries})
在此页面的模板中,我访问date属性。问题是,当我在第一页的模板中查看日期时,它以UTC显示,而第二页中的日期以我想要的方式显示(即亚洲/加尔各答时区)。即使我已经明确设置了时区,为什么时区也会出现这种差异?
解决方法
设置时区后,还需要设置
// Timed out!
if (errno_copy == THRIFT_ETIMEDOUT) {
throw TTransportException(TTransportException::TIMED_OUT,"THRIFT_ETIMEDOUT");
}
请参阅:https://docs.djangoproject.com/en/3.1/topics/i18n/timezones/