2011-11-06 2 views
2

Rails 3.1.1 응용 프로그램의 시간대 동작과 관련된 문제가 있습니다. 다음은 내 콘솔에서 수행 한 작업입니다.Rails 3.1.1 timezone behavior

(rdb:1) Time.zone = "Amsterdam" 
"Amsterdam" 
(rdb:1) Time.zone.parse("Sun, 06 Nov 2011 13:05:18 +0000") 
Sun, 06 Nov 2011 14:05:18 CET +01:00 
(rdb:1) Time.zone = "Atlantic Time (Canada)" 
"Atlantic Time (Canada)" 
(rdb:1) Time.zone.parse("Sun, 06 Nov 2011 13:05:18 +0000") 
Sun, 06 Nov 2011 09:05:18 AST -04:00 

개체의 타임 스탬프는 UTC입니다. 내 시간대 암스테르담에서 나는 그것을 만들 때 14:05이었습니다. 뉴욕시의 시간대는 "Atlantic Time (Canada)"입니다. 해당 영역에서 시간 소인을 파싱하면 09:05가됩니다. 하지만 그건 잘못되었습니다. 08:05이어야합니다.

게다가 두 영역 사이의 시간차는 -4 -1 = -5 인 것처럼 보이지만 실제로는 -6 시간입니다.

그 동작은 완전히 내 응용 프로그램 동작을 파괴합니다. 여기서 내가 뭘 잘못하고 있니?

감사합니다. 펠릭스.

답변

2

잘못된 것은 아닙니다. DST는 11 월 6 일 오전 2시에 오늘 변경되었습니다. 그래서 시간은 8시 5 분이 아니라 9시 5 분입니다. 또한 뉴욕은 대서양 시대가 아니라 동부 시대에 있습니다.

+0

지옥, 우리는 2 주 전에 DST를 변경했습니다. 그 사이에 갭이 있다는 것을 나는 몰랐다. 그래서 어제 NYC는 애틀랜틱 타임 캐나다에 있었지만 오늘은 더 이상 ... 그렇지 않습니까? – GeorgieF

+0

나는 그 격차에 관해 모른다. 그러나 그것은 가능하다. NYC 시간대는 항상 EST/EDT이며 AST/ADT는 아닙니다. 그래서 NYC는 11 월 6 일 이전에 EDT에 있었고 지금은 EST에 있습니다. EDT/EST의 "동부"가 핵심 단어입니다. – Zabba

+0

당신의 힌트를위한 Thx. – GeorgieF