2012-05-29 2 views
2

bson json_util을 사용하여 bson 날짜/시간 객체를 json으로 변환 할 때, datetime은 에포크 이후 밀리 초로 표시됩니다.파이썬으로 bson 날짜/시간 객체 또는 타임 스탬프에서 isodate 문자열을 얻는 방법은 무엇입니까?

대신에 날짜/시간을 isodate 문자열로 변환하는 방법이 있습니까? 또는 json_util을 사용하여 json을 덤프하기 전에 datetime 인스턴스를 string으로 변환하는 더 좋은 방법입니까?

raw cursor item: {u'_id': ObjectId('4fc51500381b472cfdfa4eaf'), u'ts': datetime.datetime(2012, 5, 29, 18, 27, 12, 221000)} 

json.dumps (OBJ, 기본 = json_util.default)

json: {"_id": {"$oid": "4fc51500381b472cfdfa4eaf"},"ts": {"$date": 1338316032221}} 

뭔가 잘못?

를하고있는 중이 야, 내가 ValueError를 가지고 파이썬 날짜 모듈 datetime.fromtimestamp (TS)를 사용하여
import datetime 
datetime.datetime.fromtimestamp(1338316032221) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: year is out of range 

답변

3

당신은 fromtimestamp 방법을 밀리 초 단위 시대 이후의 시간을 제공하지만, 의 시대 이후 시간 (을 볼 것으로 예상3210 및 time.time 문서) :)

0

나는이 문제를 Python 및 MongoDB 스토리지에서 직접 만났습니다. 가장 간단한 대답은 : 2015-01-13

을 :

import time 
bson_timevalue = 1421147432935 
readable_date = time.strftime("%Y-%m-%d", time.localtime(int(bson_timevalue/1000))) 

print readable_date 

당신에게 제공합니다