2013-05-02 58 views
1

我嘗試使NSDateFormatter將其語言環境設置爲德語,但它失敗。在下面的代碼中,dateFrom被成功解析,dateTo不成功。NSDateFormatter不能解析德語日期

注意:在德語中,它是非洲語言,而不是2月。

NSLocale *germanLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]; 
NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"dd. MMMM" options:0 
                  locale:germanLocale]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:formatString]; 
NSDate *dateFrom = [dateFormat dateFromString:@"20. September"]; 
NSDate *dateTo = [dateFormat dateFromString:@"20. Februar"]; 

回答

2

嘗試設置NSDateFormatter的區域:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat.locale = germanLocale; 
[dateFormat setDateFormat:@"dd. MMMM"]; 
NSDate *dateFrom = [dateFormat dateFromString:@"20. September"]; 
NSDate *dateTo = [dateFormat dateFromString:@"20. Februar"]; 
+0

感謝,這個工作。但爲什麼在dateFormatFromTemplate函數中設置locale不起作用? – 2013-05-02 14:40:07

+0

,因爲formatString只是一個字符串,它不包含區域設置信息。日期模板可以被修改(例如,日期組件的順序可以根據語言環境而改變),但它仍然只返回一個字符串。請參閱該方法的文檔 - 有一個例子顯示它如何做以及它做了什麼。 – Jeepston 2013-05-02 14:43:57