Rubyプログラムを作成しています。America/New_York
のようなものを取得する方法が必要です。ActiveSupport::TimeZone
とrequire "tzinfo"
は現在のタイムゾーンを取得できません。(Time.now.zone
はEST
のようなものを取得できることに注意してください。しかし、tzデータベース形式(例:America/New_York
)が必要です。)これを行う簡単な方法は、ユーザーに$TZ
、TZ='America/New_York'; export TZ
、またはtzselect
を設定させることです。私はこれを行う方法を探しています。 user set TZ
。ロードできるシステムファイル、またはクエリできるネットワークの場所はありますか?
のようなもののタイムゾーンが必要です。
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.
Glibcでは、デフォルトのタイムゾーンは/etc/localtime
に保持されます。これは、tzデータベース内のファイルへのシンボリックリンクである可能性があります(この場合、単に読み取りリンクを作成できます)が、保証はありません。ハードリンクまたはコピーである可能性があります。その場合、ファイルを読み取ってから、tzデータディレクトリ内のすべてのファイルと比較する必要があります。
値America/New_York
を取得することがどのような目的に役立つと思うかわかりません。