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