26

ObjectIDからタイムスタンプを取得しようとしていますが、Mongoからこのエラーが発生し続けます。インポートがありませんか?タイムスタンプを標準の日付形式に変換する最良の方法は何ですか?

video['date'] = video['_id'].getTimeStamp()
4

3 に答える 3

58

方法としてどこを見getTimeStamp()ましたか?

ドキュメントによると、次のようになります。

video['date'] = video['_id'].generation_time
于 2012-08-14T22:56:45.917 に答える
8

この答えはPythonとDjangoベースです。

使用する前に、UTC(協定世界時)に変換されるgeneration_timeことに注意してください。これは、現在のタイムゾーンに応じて進んだり遅れたりする可能性があるため、プロジェクト設定で現地時間を使用してタイムスタンプを保存している場合は、時間に差が生じる可能性があります。オブジェクト。私にとっては、5.5時間の違いがあります。したがって、タイムゾーンに応じて時間を調整してください。generation_time

例: この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>)
于 2019-01-30T14:00:23.060 に答える
0

ドキュメントのobject_idからUTCで時刻を取得するため、現地時間に変換するためにできることは...

document['_id'].generation_time  #(gives the generation/creation time of the object id in UTC.)
utc=document['_id'].generation_time
hours_added = datetime.timedelta(hours = 4)`  #(Suppose utc+4 is my local time.)
local_time=utc+hours_added  
于 2020-09-26T14:15:05.153 に答える