class Test(Model):
time = DateTimeField()
# ...
row = Test.select()[0]
test.time
这将返回如下所示的字符串:2017-01-23 01:01:39+01:00
。我怎样才能将它作为日期时间对象取而代之?我是否必须手动解析它?
如果有关于如何使用DateTimeField
的任何文档,我也会感兴趣。官方文件中没有任何内容。
答案 0 :(得分:1)
您使用的是SQLite吗?如果是这样,SQLite没有专用的日期时间类型,因此日期时间作为字符串存储在数据库中。 peewee将做的是识别来自DB的某些日期时间格式并将它们转换为datetime对象。您需要做的是确保:
datetime
对象指定给该字段。peewee支持日期时间字段开箱即用的格式为:
看起来你的区域信息。我建议转换为UTC并删除区域信息。那应该解决它。
答案 1 :(得分:0)
您是否尝试过添加这样的默认设置?
time = DateTimeField(default=datetime.datetime.now())
或者在添加条目时直接将其添加为datetime.datetime对象:
test = Test(....., time=datetime.datetime.strptime("2018-3-15", '%Y-%m-%d'))
在第二种情况下,您不需要在类定义中指定任何内容......