2012-12-29 139 views
2

我有方法dateFromString一個問題,這裏是我的代碼NSDateFormatter dateFromString與日期

NSString* res = [NSString stringWithFormat:@"%@/%@/%@",dateInput.text,monthInput.text,yearInput.text]; 
NSDateFormatter* formatter = [[NSDateFormatter alloc]init]; 
[formatter setTimeZone:[NSTimeZone localTimeZone]]; 
[formatter setDateFormat:@"dd/MM/yy"]; 
NSDate* inpTime = [formatter dateFromString:res]; 
[dateResult setText:[NSString stringWithFormat:@"%@",inpTime]]; 

當我運行,日期在「inpTime」始終是「dateInput」 - 1 例如:如果「 dateInput「爲5,」inpTime「中的日期爲4

+0

您的代碼是完美的..沒有錯誤!!!,請嘗試清理目標。 –

回答

0

您需要調整時區。

變化

[formatter setTimeZone:[NSTimeZone localTimeZone]]; 

[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 

這是因爲你沒有設置時間,所以它的默認設置午夜UTC。 但是,如果您使用UTC以外的時區顯示日期,則會相應地移動時間。

就好像你住在紐約的2012年12月29日00:00:00 UTC實際上是2012年12月28日18:00:00給你一個例子。

+0

謝謝,我的問題解決了,你能解釋爲什麼我需要將localTimeZone更改爲timeZoneWithName:@「UTC」:D –

+0

有關說明,請查看我的更新答案。 –

+0

非常感謝:D –

0

你的代碼是完美的,沒有錯誤是如此之多。

嘗試nslogging dateInput.text,monthInput.text和yearInput.text ...可能從這裏獲得無效數據。

+0

謝謝,我會再檢查一次:D –

相關問題