首页 > 解决方案 > 如何在 peewee 中获取 DateTimeField 的值

问题描述

class Test(Model):
    time = DateTimeField()

# ...
row = Test.select()[0]
test.time

这将返回一个如下所示的字符串:2017-01-23 01:01:39+01:00。我怎样才能把它作为一个日期时间对象呢?我必须手动解析它吗?

如果有任何关于如何使用DateTimeField. 官方文档上没有任何内容。

标签: pythonsqlpeewee

解决方案


你在使用 SQLite 吗?如果是这样,SQLite 没有专用的日期时间类型,因此日期时间作为字符串存储在数据库中。peewee 将做的是识别来自数据库的某些日期时间格式并将它们转换为日期时间对象。您需要做的是确保:

  1. 当您创建/保存对象时,您将datetime对象分配给该字段。
  2. 读回预先存在的数据时,该数据采用可识别的格式。

peewee 支持开箱即用的日期时间字段格式有:

  • YYYY-mm-dd HH:MM:SS.ffffff
  • YYYY-mm-dd HH:MM:SS
  • YYYY-mm-dd

看起来你有区域信息。我建议转换为 UTC 并删除区域信息。那应该解决它。


推荐阅读