2010-12-04 32 views
2

這一直讓我瘋狂,有人請告訴我我在哪裏搞砸了。NSDateFromatter沒有給出適當的MMMM值

我已經創建了一個新項目來測試這個。環境是在模擬器和設備上運行的xcode 3.2.5具有相同的結果。

當我創建日期格式化程序,並設置其格式,然後傳遞一個字符串,日期格式化程序不工作。

int tmpMonth = 11; 
int tmpYear = 2010; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];  
[dateFormatter setDateFormat:@"m/d/yyyy"]; 
NSString *dateAsString = [[NSString alloc] initWithFormat:@"%d/23/%d",tmpMonth,tmpYear]; 
NSDate *theDate = [[NSDate alloc] initWithTimeInterval:0 sinceDate:[dateFormatter dateFromString:dateAsString]]; 
[dateFormatter setDateFormat:@"MMMM d, yyyy"]; 
NSLog(@"%@",[dateFormatter stringFromDate:theDate]); 
[dateFormatter setDateFormat:@"m/d/yyyy"]; 
NSLog(@"%@",[dateFormatter stringFromDate:theDate]); 
[dateFormatter release]; 
[theDate release]; 
[dateAsString release]; 

這導致這樣的輸出:

[Session started at 2010-12-03 17:47:04 -0600.] 
2010-12-03 17:47:05.274 wtfDateFormatter[18970:207] January 23, 2010 
2010-12-03 17:47:05.277 wtfDateFormatter[18970:207] 11/23/2010 

我不知道爲什麼它是打印月份的時候我給它的格式MMMM,因爲這是工作在我的應用程序的其他部分就好了,它只是使用一個不同的NSDate源。

回答

3

您正在使用「m」作爲月份編號,用於解釋和生成字符串。不幸的是,'米'是幾分鐘。改用'M'。

+0

dang it。就是這樣。我知道我已經看了太久 – AtomRiot 2010-12-04 01:10:47

1

如果將tmpMonth設置爲12,輸出是多少?我想知道它會留在一月份還是切換到二月份?

相關問題