「$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

関連情報