2014-12-30 44 views
2

我有下面的代碼,其僅僅讓當前日期並將其轉換爲格式YYYY-MM-DD HH:MM:SS ZZZNSDateFormatter - 添加一年?

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
     [dateFormatter setDateFormat: @"YYYY-MM-dd HH:mm:ss zzz"]; 
     NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; 
     [dateFormatter setTimeZone:currentTimeZone]; 

     NSString *time = [dateFormatter stringFromDate:[NSDate date]]; 

     NSLog(@"TIME IS %@", time); 

藉助於此,我發現了下面的日誌輸出:

2014-12-30 00:20:38.987 MYAPPNAME[953:229825] TIME IS 2015-12-30 00:20:38 CST 

有人能告訴我爲什麼產出顯示爲2015年,而不是2014年,因爲它應該是?

+0

檢查您的系統或設備日期 – codester

+0

在日期格式中使用'yyyy'而不是'YYYY' –

+0

@AdamTheRaysFan:請接受並且提出答案,對你有幫助。 – Mrunal

回答

4

yyyy指定日曆年,而YYYY指定一年(「創周」)

必須從

[dateFormatter setDateFormat: @"YYYY-MM-dd HH:mm:ss zzz"]; 
改變你的 dateformatter風格

[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"]; 

供大家參考,看看這個apple documentation

1

更改日期甲

[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"]; 
0

試試這個:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
     [dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"]; 
     NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; 
     [dateFormatter setTimeZone:currentTimeZone]; 

     NSString *time = [dateFormatter stringFromDate:[NSDate date]]; 

     NSLog(@"TIME IS %@", time); 

有關詳細信息,關於NSDateFormatter,請閱讀本:

http://realmacsoftware.com/blog/working-with-date-and-time