如何使用pymongo将日期时间字符串作为ISODate插入Mongodb

Arc*_*ger 15 python pymongo

如何将这样的日期时间字符串"2017-10-13T10:53:53.000Z"作为ISODate 插入到mongo db中?插入时,我在mongodb中得到一个字符串: datetime.strptime("2017-10-13T10:53:53.000Z", "%Y-%m-%dT%H:%M:%S.000Z")

jas*_*jas 16

这对我有用,你会得到不同的结果吗?

from pymongo.mongo_client import MongoClient
import datetime

d = datetime.datetime.strptime("2017-10-13T10:53:53.000Z", "%Y-%m-%dT%H:%M:%S.000Z")

with MongoClient() as mongo:
    db = mongo.get_database("test")
    db['dates'].insert({"date" : d})
Run Code Online (Sandbox Code Playgroud)

入住mongo:

> use test
switched to db test
> db.dates.findOne()
{
    "_id" : ObjectId("589307d7cfd6c908d4b677d6"),
    "date" : ISODate("2017-10-13T10:53:53Z")
}
Run Code Online (Sandbox Code Playgroud)

更新:如评论所述,如果您收到"时间数据与格式不匹配"​​错误,请尝试更通用的格式字符串,例如:%Y-%m-%dT%H:%M:%S.%fZ

  • 我收到了“时间数据与格式不匹配”​​的信息,不得不将格式字符串略微更改为:“%Y-%m-%dT%H:%M:%S.%fZ” (2认同)
  • 即使更改为 @Mirko 格式也不起作用,“ValueError:时间数据 '1970-01-18 20:15:07.234807' 与格式 '%Y-%m-%dT%H:%M:%S 不匹配.%fZ'" (2认同)