在这里,我默认在此日期字段中提到了我的model.py,我想将时区指定为00:00:00,所以请帮助我。
Models.py
class Dummy(models.Model):
name = models.CharField(max_length=100)
date = models.DateTimeField(null=True,auto_now_add=True)
预期的输出结果
{
"id": 1,
"name": "xxxx",
"date": "2018-09-26T00:00:00Z"
}
实际输出
{
"id": 1,
"name": "xxxx",
"date": "2018-09-26T05:52:26.626604Z"
}
答案 0 :(得分:0)
使用public class IndexModel : PageModel {
private readonly IMyClass _myClass;
public IndexModel(IMyClass myClass)
{
_myClass = myClass;
}
public void OnGet()
{
_myClass.SampleMethod();
}
}
代替DateField
。
答案 1 :(得分:0)
似乎您根本不需要时间成分;如果您打算在所有情况下将其归零,则将其存储是没有意义的。
仅保留日期,并在序列化程序中使用日期实例化日期时间。
from datetime import date, datetime
# Where t would normally be a date from your model...
t = date.today()
print(datetime(t.year, t.month, t.day).isoformat())
# 2018-09-26T00:00:00
您尚未提供有关如何生成此JSON的信息,但是如果您使用的是Django的内置序列化,则可以write a custom encoder以这种方式将日期转换为零时日期时间
答案 2 :(得分:0)
来自Django文档的Field.default:
该字段的默认值。这可以是值或可调用 宾语。如果可调用,则每次有新对象时都会调用它 创建。
这样做:
from datetime import datetime, timedelta
def default_start_time():
now = datetime.now()
start_time = now.replace(hour=00, minute=0, second=0, microsecond=0)
return start_time
class Dummy(models.Model):
name = models.CharField(max_length=100)
date = models.DateTimeField(null=True,auto_now_add=True,default=default_start_time)
答案 3 :(得分:0)
您可以使用class MaterialMaster < ApplicationRecord
has_many :material_locations
accepts_nested_attributes_for :material_locations,allow_destroy: true
end
方法删除time
对象的datetime
部分:
.replace()
这将导致:
self.date = self.date.replace(hour=0, minute=0, second=0, microsecond=0)