0

NSDateFormatterは、渡さない場合、どのNSTimeZone値を使用しますか?timeZoneデフォルト値を使用するか、特定の値を渡したいのですが。私はこのようなことをしたいです:

- (NSString *) announcementTime{
    NSTimeZone *defaultTimeZone;  // What does this become?
    [self announcementTimeInTimeZone:defaultTimeZone];
}

- (NSString *) announcementTimeInTimeZone:(NSTimeZone *)timeZone{

  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

  [formatter setDateStyle:NSDateFormatterNoStyle];
  [formatter setTimeStyle:NSDateFormatterShortStyle];
  [formatter setTimeZone:timeZone];

  return time;
}

メソッドにどのタイムゾーンを渡したいannouncementTimeInTimeZone:ですか?おそらく[NSTimeZone defaultTimeZone]または[NSTimeZone localTimeZone]。デフォルトが何であるかわからないだけで、どこにも文書化されていません。

4

2 に答える 2

1

ドキュメントも見つかりませんでしたが、デバッガーで遊んだことがあり、NSDateFormatterはdefaultTimeZoneを使用しているようです。

(lldb)p(NSTimeZone *)[f timeZone](NSTimeZone *)$ 1 = 0x0a926fa0@"オーストラリア/シドニー"

(lldb)p(NSTimeZone *)[NSTimeZone defaultTimeZone](NSTimeZone *)$ 2 = 0x0a926fa0 @ "Australia / Sydney"

(lldb)po [NSTimeZone localTimeZone](id)$ 2 = 0x0ab3bb10ローカルタイムゾーン(オーストラリア/シドニー(GMT + 10:00)オフセット36000)

「f」は、alloc--initだけで作成されたNSDateFormatterです。ご覧のとおり、2つのタイムゾーンはまったく同じで、同じアドレスに保存されています。

于 2012-09-27T03:55:09.963 に答える
0

localTimeZoneデフォルトでは。

于 2012-09-27T04:20:24.523 に答える