인스타그램의 경우 long형 숫자로 되어있어서.

python에서 날짜 변환을 해줘야한다. 문제는 타임존을 지정안하면 UTC 시간으로 해서 현재 시간과는 다른 문제가 있다.

문제는 이렇게 하면 python 상에서 보면 현재 시간으로 보게 되지만...

몽고디비에 insert 하게 되면 좀 골치아프다.


TIME_ZONE = pytz.timezone('Asia/Tokyo')
pytz.utc.localize(datetime.utcfromtimestamp(long(r.get('date')))).astimezone(TIME_ZONE)


몽고디비에서 타임존 변경을 지원안하는건지 자료를 못찾았다.

그래서 시간을 변환해야 한다.


참고로 22시 15분 기준으로 mongodb 에서 시간대를 확인해보면 9시간 이전 시간으로 나온다.

하아 뭔가 이상하다.

>  new Date()

ISODate("2016-03-06T13:15:32.386Z")

> new ISODate()

ISODate("2016-03-06T13:15:37.250Z")


그래서 9시간만큼 더해서 update해보려고 했는데 update $set 으로 this.날짜필드 로 해서 변환이 안먹는다.

아아...


결국은 무식하게 이렇게 과거데이터는 수정했다했다.

use sampe_table; // 날짜필드는 rdt 

db.sample_table.find({}).forEach(function (doc){

doc.rdt = new Date(doc.rdt.getTime() + 1000* 60 * 60 * 9); // 1000ms * 초 * 분 => 시간환산후 9시간 곱함

db.sns_image.save(doc)

});



그리고 UTC 기준시간으로 수집되도록 몽고디비에 넣을때 UTC기준값으로 바꿔치기후 넣게 했다. 

pytz.utc.localize(datetime.utcfromtimestamp(long(r.get('date')))).astimezone(TIME_ZONE).replace(tzinfo=pytz.UTC)



+ Recent posts