Python Django-给定日期和时间,如何手动设置DateTimeField值?
如何手动设置给定日期和时间的DateTimeField值 这是我的模型,我正在尝试将日期和时间值分配给“created_at”字段: 以下是我在控制台中尝试的内容: Python Django-给定日期和时间,如何手动设置DateTimeField值?,python,django,datetime,django-queryset,Python,Django,Datetime,Django Queryset,如何手动设置给定日期和时间的DateTimeField值 这是我的模型,我正在尝试将日期和时间值分配给“created_at”字段: 以下是我在控制台中尝试的内容: >o=attention.objects.last() >o.u在 datetime.datetime(2018,6,26,0,45,31829827,tzinfo=) >x=datetime.strtime('17/07/2018 12:20','%d/%m/%Y%H:%m') >x datetime.datetime(20
>o=attention.objects.last()
>o.u在
datetime.datetime(2018,6,26,0,45,31829827,tzinfo=)
>x=datetime.strtime('17/07/2018 12:20','%d/%m/%Y%H:%m')
>x
datetime.datetime(2018,7,17,12,20)
>o、 更新的_at=x
o、 保存()
>z=attention.objects.last()
>z、 更新地址
datetime.datetime(2018,7,29,12,0,13,204815,tzinfo=)
请注意,我设置了“2018,7,17”,但显示为“2018,7,29”。作业正确吗?可能它也需要时区。因此,如果您试图将updated_at字段设置为当前的亚洲/吉隆坡时区,则需要生成datetime.datetime(2018、7、29、12、0、13、204815、tzinfo=)和适当的tzinfo值 这是以下两个堆栈溢出答案的组合: 您的结果调用将引用
Asia/Kuala_Lumpur
这个电话可能看起来像:
x = datetime.tzinfo("Asia/Kuala_Lumpur")
y = datetime.datetime(2018, 7, 29, 12, 0, 13, 204815, x)
datetimes
如果使用TZ
是真的
,则将
唯一的解决方法是将USE_TZ
设置为False
auto_now
,其中包含以下内容:
如果USE_TZ
为False
,则这将是表示系统本地时区中当前时间的原始日期时间(即没有关联时区的日期时间)。
转换时间并将其存储在DB中不是一个好方法,因此,在需要时转换时间您确定o和z是同一个对象吗?此代码似乎正确,但可能是更改/保存对象会使不同的对象响应“Attention.objects.last()”。是的,在我的本地计算机上开发时也是如此。我被告知auto_now_add可能是个问题,是否应该使用默认值而不是您意识到您的auto_now可能正在工作并覆盖字段中更新的_,对吗?由于您正在更新更新的\u at字段并获得今天的结果,根据自动\u现在的应用时间,您似乎获得了两个可能正确的结果之一。哦,我没有意识到,我们在更新的\u at上进行测试,因为我不想触摸创建的\u at。也许您可以添加一个额外的字段来检查更新的\u at。。。。。在我看来,您的代码似乎正在按编写的方式工作。它不工作。它有以下错误类型错误:tzinfo参数必须为None或tzinfo子类,而不是“str”类型。也许它应该像这样工作?不确定。我用“US/Pacific”尝试了你的代码,在控制台中使用了一点,我认为这解决了你的问题。
Asia/Kuala_Lumpur
x = datetime.tzinfo("Asia/Kuala_Lumpur")
y = datetime.datetime(2018, 7, 29, 12, 0, 13, 204815, x)