루비와 함께 현지 시간을 UTC 시간으로 변환하는 방법을 많이 알고 있지만 시간과 구역이 분리 된 경우 어떻게해야하는지 잘 모르겠습니다. 데이터. "12:00 PM -0500"과 같은 것을 가지고 있다면 이것을 .getutc()
으로 UTC로 쉽게 변환 할 수 있습니다. 그러나 "12:00 PM"과 "동부 표준시 (US & 캐나다)"가 있으면 어떻게됩니까? 이 둘을 결합하여 UTC 시간을 찾는 방법은 무엇입니까?별도의 시간 및 시간대 문자열 가져 오기 및 UTC로 변환
1
A
답변
0
레일스를 사용 중이거나 ActiveSupport가 필요하지 않은 경우 ActiveSupport :: TimeZone을 사용하면됩니다.
>> time_zone = "Eastern Time (US & Canada)"
>> time_without_zone = "12:00 PM"
>> ActiveSupport::TimeZone[time_zone].parse(time_without_zone)
#=> Wed, 15 Nov 2017 12:00:00 EST -05:00
3
DateTime :: parse 메서드가 원하는 것일 수 있습니다.
x = DateTime.parse("12:00 PM Eastern Time (US & Canada)")
는 UTC 시간을 변환하는 방법은 여러 가지가있다, 거기에서
#<DateTime: 2017-11-15T12:00:00-05:00 ((2458073j,61200s,0n),-18000s,2299161j)>
의 결과를 반환합니다. 예를 들어,
utc = x.new_offset(0)
는 "오후 12시"와 "동부 표준시 (미국과 캐나다)"_이
#<DateTime: 2017-11-15T17:00:00+00:00 ((2458073j,61200s,0n),+0s,2299161j)>
+0
이렇게하려면 stdlib'require 'datetime''이 필요합니다. 또한 'to_time'을 사용하여 시간 aftewards로 변환합니다. – Max
_i의 결과를 반환합니다 - 두 개의 문자열은? – Stefan
@Stefan 예, 이들은 두 개의 문자열입니다 – 123
이 문자열은 어디에서 오는 것입니까? – Stefan