필자가 사용중인 시스템의 현지 시간대를 나타내는 TZInfo 스타일 문자열 a-la 'America/New_York'를 얻어야합니다. 나는 그것을하는 방법을 알아낼 수 없다.로컬 시간대에 대한 TZInfo 스타일 문자열을 가져 오는 방법이 있습니까?
Time.zone
#<ActiveSupport::TimeZone:0x007ff2e4f89240 @name="UTC", @utc_offset=nil, @tzinfo=#<TZInfo::TimezoneProxy: Etc/UTC>, @current_period=#<TZInfo::TimezonePeriod: nil,nil,#<TZInfo::TimezoneOffsetInfo: 0,0,UTC>>>>
여기서 TimezoneProxy # Etc/UTC 필드는 원하는 스타일이지만 현지 시간이 아닙니다. 여기에 "EST"
Time.now.zone
"EST"
내가 원하고 내가 원하는 것을 얻을 TZInfo에 Time.now 또는 EST을 통과 할 수있는 방법이 표시되지 않는 것이 아니다?
"America/New_York"또는 현재 시간대를 기준으로하는 모든 해당 시간대 문자열 목록을 가져 오는 방법이 있습니까?
current_tz = ActiveSupport::TimeZone['EST']
ActiveSupport::TimeZone.
all.
select{|tz| tz.utc_offset == current_tz.utc_offset }.
map(&:tzinfo).
map(&:name).
uniq
이
["America/Bogota", "EST", "America/New_York", "America/Indiana/Indianapolis", "America/Lima"]
생산할 예정이다하지만이 때문에 일광 절약 문제의 잘못된 생각 :
찾는 생산할 예정 파이썬이지만 시간대 정보가 오는 장소는 모두 동일합니다.) Unix, Win32에서 지역 시간대에 해당하는 zoneinfo 시간대 (예 : "America/New_York")를 찾습니다. – jfs