如果不传入,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]。我只是不确定默认值是什么,也没有看到任何文档记录它。
发布于 2012-09-27 11:55:10
我也找不到任何文档,但是我在调试器中使用了一下,看起来NSDateFormatter使用了defaultTimeZone。
(lldb) p (NSTimeZone*)f timeZone $1 = 0x0a926fa0 @“澳大利亚/悉尼”
(lldb) p (NSTimeZone*)NSTimeZone defaultTimeZone $2 = 0x0a926fa0 @“澳大利亚/悉尼”
(GMT+10:00) po NSTimeZone localTimeZone $2 = 0x0ab3bb10当地时区(澳大利亚/悉尼(GMT+10:00)偏移36000)
"f“是使用alloc - init创建的NSDateFormatter。如你所见,这两个时区是完全相同的,存储在相同的地址。
发布于 2012-09-27 12:20:25
默认情况下,它将接受localTimeZone。
https://stackoverflow.com/questions/12613455
复制相似问题