我在Django中创建了一个模型,我想在默认情况下输入本地时间的创建时间。我在www.example.com中设置了以下内容settings.py:
TIME_ZONE = 'Asia/Kolkata'
USE_TZ = True
我尝试了以下方法:
import pytz
status_timezone = pytz.timezone('Etc/UTC')
class Status(models.Model):
status = models.IntegerField(default=0, blank=True)
active = models.IntegerField(default=1, blank=True)
creation_date = models.DateTimeField(default=status_timezone.localize(datetime.now()))
这总是为所有条目提供相同的日期时间(模型初始化的时间
class Status(models.Model):
status = models.IntegerField(default=0, blank=True)
active = models.IntegerField(default=1, blank=True)
creation_date = models.DateTimeField(default=datetime.now)
这将以UTC表示日期时间
有人能告诉如何在IST中默认输入日期时间吗?先谢谢你了
5条答案
按热度按时间k10s72fa1#
你需要改变。
这样做您将停止使用
UTC
和TIME_ZONE = 'Asia/Kolkata'
将生效。xwbd5t1u2#
正如Django文档中所解释的,auto_now_add是用默认时区填充的。如此处所述,这是根据
TIME_ZONE
设置填充的。因此,我认为你的问题的答案是:
TIME_ZONE=Asia/Kolkota
creation_date = models.DateTimeField(auto_add_now=True)
deikduxw3#
其常见模式如下:
created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)
guicsvcw4#
最简单的方法就是
在“settings/py”中:
在'models.py'中:
disho6za5#
已解决:
在models.py
从django.utils导入时区
models.DateTimeField(默认值= timezone.now)
在settings.py
TIME_ZONE = 'Europe/罗马' #意大利
USE_TZ =假