2015-01-03 7 views
1

Ruby 스크립트를 작성 중입니다. 그것은 사용자로부터 시간 소인을 받아 들인 다음 그것을 사용하여 일부 데이터베이스 쿼리를 수행해야합니다. 지금까지 데이터베이스가 타임 스탬프를 UTC로 저장하고 있다는 것을 알고 있습니다.Ruby 타임 스탬프 Relatably UTC로 변환

나는 사용자가 다음과 같은 형식으로 시간을 지정할 수 있습니다 할 : 2015년 1월 1일 중부 표준시 오전 5시을

구글은 CST 그래서 난 것 UTC로 변환 후, UTC 뒤에 6시간 인 나에게 말한다 것과

시간은 2014-12-31 11:00 UTC입니다.

하지만 그건 내가보고있는 것이 아닙니다.

Time.strptime('2015-01-01 05:00 AM CST', '%Y-%m-%d %I:%M %P %Z').utc

인쇄

2015-01-01 11:00:00 UTC

그것이 2014년 12월 31일 오후 11:00 UTC를 인쇄 한 안 ?

Time.strptime('2015-01-01 05:00 PM CST', '%Y-%m-%d %I:%M %Z').utc

인쇄

2015-01-01 11:00:00 UTC

오후 AM에서 변화가 어떤 변화를하지 않는 것, 어떻게이 될 수 있는가?

답변

0

나는 뒤로했다! UTC는 중부 표준시의 전방이므로 CST가 UTC로 변환되면 6 시간이 중부 표준시 시간에 추가됩니다!

루비가 올바르게하고 있습니다.

그래서 오전 5시 중부 표준시 = 오전 11시 (UTC). 오후 5시 중부 표준시 = 세계 협정시 오후 11시. 제대로 일 증가

Time.strptime('2015-01-01 11:00 PM CST', '%Y-%m-%d %I:%M %P %Z').utc

인쇄

2015-01-02 05:00:00 UTC

: 나는 중부 표준시 오후 11시을 테스트하는 경우

일의 차이가 발생합니다.