2012-09-27 39 views
0

NSDateFormatter的值如果你沒有傳入,它會使用什麼NSTimeZone值?我想要使​​用默認的timeZone值,或者傳入給定的值。我想要做這樣的事情:如果你沒有傳入NSDateFormatter,NSTimeZone的值會是什麼?

- (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]。我只是不確定默認是什麼,也沒有看到它在任何地方記錄。

回答

1

我找不到任何文檔,但我在調試器中玩過,它看起來像NSDateFormatter使用defaultTimeZone。

(LLDB)P(NSTimeZone *)[F的timeZone](NSTimeZone *)$ 1 = 0x0a926fa0 @ 「澳大利亞/悉尼」

(LLDB)P(NSTimeZone *)[NSTimeZone defaultTimeZone] ( NSTimeZone *)$ 2 = 0x0a926fa0 @ 「澳大利亞/悉尼」

(LLDB)PO [NSTimeZone localTimeZone] (ID)$ 2 = 0x0ab3bb10本地時區(澳大利亞/悉尼(GMT + 10:00)偏移36000)

「f」是一個使用alloc-init創建的NSDateFormatter。 正如你所看到的兩個時區完全一樣,存儲在同一個地址。

+0

你有沒有嘗試localTimeZone,以確保它不一樣? – Moshe

+0

是的,我將它添加到上面的答案中。他們是不同的。 –

+0

這個答案在時區類型上有一些很好的解釋。 http://stackoverflow.com/questions/1526990/nstimezone-what-is-the-difference-between-localtimezone-and-systemtimezone –

0

默認情況下需要localTimeZone

相關問題