2011-04-19 82 views
0

我得到了NSDateFormatter返回的格式錯誤的日期字符串。這裏是我的代碼:NSDateFormatter - 沒有得到正確的格式化字符串

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init]; 
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"]; 
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate]; 

這裏, refDate(NSDate的對象)= 1970-01-01 0點36分22秒+0000

輸出我得到的是 「16小時:36米:22S」,而不是「00h:36m:22s」。

我在這裏做錯了什麼?

+0

refDate傳遞給stringFromDate,所以我認爲它是一個字符串,你能給我們確切的字符串,你正在使用? – 2011-04-19 21:26:01

+0

你是什麼時區? – 2011-04-19 21:27:54

+0

你在什麼時區,你可能需要指定格式化程序的時區,看起來像是使用-8時區,所以我猜你是住在西海岸。 – Joe 2011-04-19 21:30:15

回答

1

嘗試設置時區。 (見上面我的評論)

NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init]; 
[aDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"] 
[aDateFormatter setDateFormat:@"dd-MM-yy HH:mm:ss"]; 
NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:refDate]; 
2

NSDateFormatter將默認爲系統上的當前時區,除非您將其設置爲setTimeZone

[aDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

NSDateFormatter to NSString?

0

除了看看,生活在太平洋時間,而不是真的。在那裏添加你的時區偏移量,你就會明白爲什麼你會得到這個值:NSDateFormatter正在按照當地時間格式化日期,而不是UTC