.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.22 2009

タイムゾーンの取得と設定

Tasaki です。

今回のテーマはタイムゾーンの扱い方についてです。

このタイムゾーンの設定によって、NSDate オブジェクトの属性が変わってきます。
タイムゾーンは NSTimeZone というオブジェクトを使用して管理します。

時計に限らず、アプリによっては特定のタイムゾーンを設定したい場合が生じると思います。
アプリの初期化時には、デフォルトではシステムのタイムゾーンを設定されますが、プログラマが自由にこれを変更することが可能です。

アプリのタイムゾーンを変更するには、以下のメソッドを使用します。
+ ( void ) setDefaultTimeZone:( NSTimeZone *) timeZone;

また、タイムゾーンオブジェクトの生成には、以下のメソッドを使用します。
+ ( id ) timeZoneWithName:( NSString *) name;
- ( id ) initWithName:( NSString *) name;
name には、タイムゾーン名を与えることになりますが、その前にタイムゾーン名がどのように定義されているかを知っておく必要があります。
定義されたタイムゾーン名を取得するためのメソッドがこちらです。
+ ( NSArray *) knownTimeZoneNames;
返り値は、既知のタイムゾーン名となっています。
これによると、日本標準時(というか東京時間?)は、Asia/Tokyo だそうです。

これを踏まえて、タイムゾーンを日本標準時に設定する処理を以下に示します。
NSTimeZone *newTimeZone = [[ NSTimeZone alloc ] initWithName: @"Asia/Tokyo" ];
[ NSTimeZone setDefaultTimeZone: newTimeZone ];


この他にも省略名を使ってタイムゾーンを設定することもできるようで、いろいろなメソッドが用意されているみたいです。(サマータイム関連のものとか)
複数のタイムゾーンを一度に扱う場合は、デフォルトをグリニッジ標準時にしておくと混乱せずに済みそうです。


関連記事
スポンサーサイト

Comment

ここ太
NSTimeZone *newTimeZone = [[ NSTimeZone alloc ] initWithName: @"Asia/Tokyo" ];

を見て知りたいことがわかりました。ありがとうございました。

一方、newTimeZoneからhourやminuteのみを抽出することはできるでしょうか?まだiOSをやりはじめて数日なのでちょっとよくわかりません。dateComponentsを使う、という書き込みをよく見かけるのですが。。。もしよかったら教えてください。
2012.11.14 23:01

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/58-b53bfc1f

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。