2012-03-15 4 views
0

데이터베이스에 저장할 시간을 확보하는 데 문제가 있습니다. postgres에서 SELECT NOW()를 수행하면 EDT에서 적절한 시간을 갖습니다. 루비 콘솔에서 Time.now를 할 때도 정확한 시간을 얻습니다. 나는 Time.now에서 얻은 것을 가져 와서 수동으로 복사/붙여 넣기를하고 psql을 통해 데이터베이스에 저장하면된다. 문제는 코드에서 시간을 절약하려고 할 때 시간이 3 ~ 4 시간 앞으로 점프하는 것입니다.Ruby on Rails에서 Postgres 데이터베이스에 시간 절약

누구나 Time.now 또는 SELECT NOW()에서 얻은 정보를 정확히 알고 싶으면 알려 주시면 집에 올 때 게시하겠습니다.

내가 간과 할 작은 것이 있다고 확신하지만, 나는 그것을 이해할 수 없다! 나는 포스트 그레스와 함께 Ruby on Rails를 설정하는 사람들에게 이것이 공통적 인 문제 일 것 같아요. 도와 주셔서 감사합니다.

+0

몇시에 캡처하려고합니까? – swasheck

+0

Time.zone.now에서 무엇을 제공합니까? – Robin

+0

목, 2012 년 3 월 15 일 22:34:30 UTC +00 : 00 내 문제라고 생각합니다. –

답변

1

레일스 3은 기본적으로 모든 시간을 GMT + 00 : 00 시간대로 데이터베이스에 저장합니다. 따라서 시간대에 따라 시간을 계산하는 동안 오프셋을 설정해야합니다. 그렇지 않으면 다음을 추가하여 기본 Activerecord 시간대를 변경할 수 있습니다. application.rb

config.time_zone = 'Your time zone' (Example: 'Eastern Time (US & Canada)') 
config.active_record.default_timezone = 'Your time zone' (Example: 'Eastern Time (US & Canada)') 
관련 문제