将MongoDB时间转换为纪元时间 - Python

时间:2014-03-25 16:42:45

标签: python mongodb datetime time pymongo

我的mongodb时间为objectid("5217a543dd99a6d9e0f74702")

如何在Python中将其转换为纪元时间。 (UTC时区和EST时区)

2 个答案:

答案 0 :(得分:0)

您可以使用ObjectId.getTimestamp()方法将objectid的时间戳部分作为日期。

获得Date对象后,您可以调用任何Date方法来获得所需内容。在shell中,您只需点击TAB即可获得所有允许的方法列表:

> var myid = new ObjectId()
> myid
ObjectId("5331ba8163083f9b26efb5b3")
> var mytime = myid.getTimestamp()
> mytime
ISODate("2014-03-25T17:18:57Z")
> mytime.<TAB>
mytime.constructor            mytime.getUTCFullYear(
mytime.getDate(               mytime.getUTCHours(
mytime.getDay(                mytime.getUTCMilliseconds(
mytime.getFullYear(           mytime.getUTCMinutes(
mytime.getHours(              mytime.getUTCMonth(
mytime.getMilliseconds(       mytime.getUTCSeconds(
mytime.getMinutes(            mytime.getYear(
mytime.getMonth(              mytime.hasOwnProperty(
mytime.getSeconds(            mytime.propertyIsEnumerable(
mytime.getTime(               mytime.setDate(
mytime.getTimezoneOffset(     mytime.setFullYear(
mytime.getUTCDate(            mytime.setHours(
mytime.getUTCDay(             mytime.setMilliseconds(

注意:我不熟悉Python,但适用相同的概念

答案 1 :(得分:0)

ObjectId.generation_time为您提供生成ObjectId的时间,以UTC:

>>> from bson import ObjectId
>>> ObjectId("5217a543dd99a6d9e0f74702").generation_time
datetime.datetime(2013, 8, 23, 18, 9, 7, tzinfo=<bson.tz_util.FixedOffset object at 0x102920c90>)

The documentation is here.

要转换为东部时间,请安装pytz和:

>>> import pytz
>>> ny = pytz.timezone('America/New_York')
>>> gt = ObjectId("5217a543dd99a6d9e0f74702").generation_time
>>> ny.normalize(gt.astimezone(ny))
datetime.datetime(2013, 8, 23, 14, 9, 7, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)