2012-01-11 183 views
-2

NSDateFormatter格式日期我試圖設置爲NSDateFormatter一年,像這樣:按年份和月份

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy"]; 
NSLog(@"**> %@",[dateFormatter dateFromString:@"2012"]); 
[dateFormatter release]; 

但它打印:**> 2011-12-31 22:00:00 +0000

也許有人可以幫到我

回答

0

這與UTC(GMT)和時區之間的時區差異做(你GMT + 2可能是)。 NSDate默認爲UTC。這就是爲什麼[NSDate日期]可能偏離當地時間。

下面的代碼應輸出2012年1月1日:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy zzz"]; 
NSLog(@"**> %@",[dateFormatter dateFromString:@"2012 GMT"]); 
[dateFormatter release]; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[dateFormatter setDateFormat:@"yyyy"]; 
NSLog(@"NSDate : %@",[dateFormatter dateFromString:@"2012"]); 
[dateFormatter release]; 
0

希望你是從+02:00時區。由於NSDate總是在GMT時區給出時間,而不是打印2012-01-01 00:00:00 +0000,它將打印GMT時區中的上述時間值。

編輯:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
[dateFormatter setDateFormat:@"yyyy"]; 
NSLog(@"NSDate : %@",[dateFormatter dateFromString:@"2012"]); 
[dateFormatter release]; 
+0

,但如果我想打印只是2012 – Streetboy 2012-01-11 12:09:54

+0

我已經更新了我的答案.. PL。查 – Ilanchezhian 2012-01-11 12:18:17