TimeZoneの扱い

Swift

いわゆる世界時計を作りたくて、Timezoneを調べてみたのでメモ。

TimeZone

Swiftの中では、TimeZoneというStructがその概念を表すものです。

identifierとabbreviation

もちろん、GMT(世界標準時)からの時間差分も持っていますが、それ以外の情報として、identifierとかabbreviationとか持っています。

identifier
IDです。
“America/New_York”とか”Asia/Tokyo”とか
abbreviation
IDの両略形。
“EST”とか”JST”とか
localizedName
調べてません

knownTimeZoneIdentifiers

世界中の時間帯がすべて入っていると思うのですが、既知のTimeZoneという情報を持ってます。 static で、もちろん get しかできません。
自分でいろいろなTimeZoneをインスタンス化したのであれば、ここから該当TimeZoneを持ってきてインスタンス化するのが、良いです。

というイニシャライザがあります。?なのは、おそらく知らないidentifierを渡されたらnilが返るのではないかと思います。(未検証)

abbreviationDictionary

abbreviationからidentifierへの辞書も用意されてます。

まとめ

自分は、利用可能なTimeZoneのリストを作りたかったので、以下のようなコードでTimeZoneの配列を作成しました。

Tips
IdentifierやAbbreviationなど色々な表記方法/指定方法があるので、アプリ内部での表現方法を決めておかないとハマります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です