タイムゾーンの国を取得
タイムゾーンの国をすべて取得
tz_countries = TZInfo::Country.all
特定の国のタイムゾーン(地域)を取得する
tz = TZInfo::Country.get("JP")
=> #<TZInfo::Country: JP>
tz.zone_names
=> ["Asia/Tokyo"]
一つの国の中に複数のタイムゾーンが存在する国もある。
tz = TZInfo::Country.get("US")
=> #<TZInfo::Country: US>
tz.zone_names
=> ["America/New_York",
"America/Detroit",
"America/Kentucky/Louisville",
"America/Kentucky/Monticello",
"America/Indiana/Indianapolis",
"America/Indiana/Vincennes",
"America/Indiana/Winamac",
"America/Indiana/Marengo",
"America/Indiana/Petersburg",
"America/Indiana/Vevay",
"America/Chicago",
"America/Indiana/Tell_City",
"America/Indiana/Knox",
"America/Menominee",
"America/North_Dakota/Center",
"America/North_Dakota/New_Salem",
"America/North_Dakota/Beulah",
"America/Denver",
"America/Boise",
"America/Shiprock",
"America/Phoenix",
"America/Los_Angeles",
"America/Anchorage",
"America/Juneau",
"America/Sitka",
"America/Yakutat",
"America/Nome",
"America/Adak",
"America/Metlakatla",
"Pacific/Honolulu"]
協定世界時(UTC)との時差を取得する
協定世界時との時差を秒を単位とする数値で取得する
name = "Asia/Tokyo"
=> "Asia/Tokyo"
ActiveSupport::TimeZone.create(name).utc_offset
=> 32400 #(秒)
協定世界時との時差を時間形式(+00:00/-00:00)のフォーマットで表示する
name/identifier(地域名)から取得する
name = "Asia/Tokyo"
=> "Asia/Tokyo"
ActiveSupport::TimeZone.create(name).now.strftime('%z').insert(3, ':')
=> "+09:00"
utc_offset(時差(秒))から取得する
name = "Asia/Tokyo"
=> "Asia/Tokyo"
utc_offset = ActiveSupport::TimeZone.create(name).utc_offset
=> 32400 #(秒)
ActiveSupport::TimeZone.seconds_to_utc_offset(utc_offset)
=> "+09:00"