Rom*_*n G 4 python timezone datetime mongodb pymongo
我正在寻找一种在 mongoDB 中存储时区感知datetime
对象的方法。
我在这里读到:使用 pyMongo 创建 ISODate,使用 pymongo 在 MongoDB 中存储datetime
对象将导致ISODate
存储一个对象(或者从 shell 查询时看起来像这样的对象)
使用该datetime.replace(tzinfo=[...])
方法,有一种方法可以使日期时间对象了解其时区。不幸的是,当将此类对象存储在 mongoDB 中时,时区信息似乎丢失了。
我的问题是:有没有办法将时区存储在 ISODate 对象本身中,以便它看起来像这样:ISODate("2012-07-14T01:00:00+01:00")
在查询 shell 时,以便稍后用 pymongo 重新加载时 datetime 对象仍然能够识别时区?
非常感谢你的帮助!
不,没有办法做到这一点。MongoDBISODate
只是一个Date
对象的包装器,该对象只是一个由整数表示的时间点,该整数对应于自 1970 年 1 月 1 日 UTC 以来经过的毫秒数。它没有办法保留偏移量。
您可能会考虑将其存储为字符串,也许存储在辅助字段中,这样您仍然可以及时查询该时刻,同时仍然知道本地时间和偏移量。
另外,假设您使用 pytz 或 dateutil 中的 tzdb 时区(例如 )"Europe/London"
,您应该认识到无法仅根据偏移量确定时区。因此,如果您确实需要重建完整的 tz 感知日期时间,那么您还必须将时区标识符存储在单独的字段中。
归档时间: |
|
查看次数: |
4810 次 |
最近记录: |