"$TZ"를 설정하지 않고 "TZ"를 얻는 방법은 무엇입니까?

"$TZ"를 설정하지 않고 "TZ"를 얻는 방법은 무엇입니까?

저는 Ruby 프로그램을 작성하고 있습니다. America/New_York그런 것을 얻을 수 있는 방법이 필요 ActiveSupport::TimeZone하지만 require "tzinfo"현재 시간대를 얻을 수 없습니다. ( Time.now.zone비슷한 것을 얻을 수 있지만 EST예를 들어 tz 데이터베이스 형식이 필요합니다 America/New_York.) 이를 수행하는 쉬운 방법은 사용자가 설정하도록 하는 것이지만 ... $TZ나는 방법을 찾고 있습니다. 사용자가 설정하지 않고도 이 작업을 수행할 수 있습니다 . 로드할 수 있는 시스템 파일이나 쿼리할 수 있는 네트워크 위치가 있습니까?TZ='America/New_York'; export TZtzselectTZ

시간대 같은 것이 필요합니다.

require "active_support/core_ext/time/zones"

Time.zone = ENV['TZ']
p Time.zone.now # Returns current time in the local time zone using ActiveSupport.

답변1

glibc에서 기본 시간대는 /etc/localtimetz 데이터베이스에 있는 파일에 대한 심볼릭 링크일 수 있지만(이 경우 간단히 링크를 읽을 수 있음) 보장할 수는 없습니다. 하드 링크일 수도 있고 심지어 복사본일 수도 있습니다. . 이 경우 파일을 읽고 tz 데이터 디렉터리에 있는 모든 파일과 비교해야 합니다.

그 가치를 얻는 것이 어떤 목적에 도움이 될 것이라고 생각하는지 잘 모르겠습니다 America/New_York.

관련 정보