2012-04-13 107 views
0

我必須將字符串轉換爲日期。我正在使用日期格式化程序來執行相同的操作。時間不正常返回

代碼:

NSString *stringDate = @"2010-06-21"; 

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

[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

NSDate *theDate = [dateFormatter dateFromString:stringDate]; 

這給了我以前的日期,而不是我傳遞的字符串的日期。所以我嘗試使用時區。

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 

這是給我正確的日期,但錯誤的時間。

我只想要日期。如何獲得正確的日期截斷時間的結果。

在此先感謝

回答

1

試試這個 -

dateOnlyFormatter = [[NSDateFormatter alloc] init]; 
[dateOnlyFormatter setDateFormat:@"yyyy-MM-dd"]; 
[dateOnlyFormatter setLocale:enUSPOSIXLocale]; 
[dateOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 

顯然任何NSDate的你問將有一個時間元素 - 你需要使用的日期格式,像這樣 -

NSString *myDateAsString = [dateOnlyFormatter stringFromDate:theDate]; 

...然後您可以將字符串送回到dateFormatter以獲得零時間的NSDate -

NSDate *myNewDate = [dateOnlyFormatter dateFromString:myDateAsString];