'ObjectId'对象没有属性'getTimeStamp'

zak*_*ces 15 python mongodb pymongo

我正在尝试从ObjectID获取时间戳,但Mongo一直给我这个错误.我错过了一个导入?将时间戳转换为标准日期格式的最佳方法是什么?

video['date'] = video['_id'].getTimeStamp()
Run Code Online (Sandbox Code Playgroud)

Eri*_*ser 40

你认为getTimeStamp()哪种方法?

根据文档,它应该是:

video['date'] = video['_id'].generation_time
Run Code Online (Sandbox Code Playgroud)

  • 这似乎是一个相当古老的帖子,但我想我会回复,因为有人赞成上述评论(@franzlorenzon).Mongoose是一个JAVASCRIPT库,这个问题与Python有关.这就是为什么`getTimeStamp()`在这种情况下不起作用的原因. (2认同)

Vis*_*ngh 8

这个答案是基于 python 和 Django 的。

在使用之前请generation_time注意,generation_time它将被转换为 UTC(世界时),它可能会超前或滞后取决于您当前的时区,因此如果您在项目设置中使用本地时间来保存时间戳,您可能会看到时间差异对象。对我来说,相差5.5小时。所以根据你的时区调整时间。

示例: 对于ObjectId('5c51aca67c76124020edbbaf')这个对象的实际创建时间是,datetime.datetime(2019, 1, 30, 19, 24, 28, 73000) 但是当我使用generation_time它生成它的时间是 5.5 小时后。

In [10]: from bson import ObjectId

In [11]: ObjectId('5c51aca67c76124020edbbaf').generation_time
Out[11]: datetime.datetime(2019, 1, 30, 13, 54, 46, tzinfo=<bson.tz_util.FixedOffset object at 0x102461128>)
Run Code Online (Sandbox Code Playgroud)