2009-09-08 74 views
4

我用這個代碼來處理日期字符串從一個JSON提要進來:NSDateFormatter與區域格式

NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateStyle: NSDateFormatterLongStyle]; 
[formatter setFormatterBehavior: NSDateFormatterBehavior10_4]; 
[formatter setDateFormat: @"EEE, dd MMM yyyy HH:mm:ss +0000"]; 

所以如果我叫

NSDate *date = [formatter dateFromString: @"Tue, 08 Sep 2009 19:21:27 +0000"]; 

我得到一個可用的日期,如果我的區域格式是美國或聯合王國,但如果我將它設置爲德國,則返回零。我知道不同地區的行爲存在一些差異,但如果我定義格式不應該糾正任何不一致?

回答

8

「Tue」和「Sep」等名稱均爲英文。其他語言使用不同的名稱。

如果你想能夠解析英語日期獨立於設備的區域設置,使用-setLocale:方法設置你的DateFormatter的區域設置en_US

+1

感謝它完成:) datePicker.locale = [[NSLocale頁頭] initWithLocaleIdentifier:@ 「EN_US」]; 或對於設備去波紋管路徑和更改您的地區,如果沒有按要求設置 設置>>通用>>國際>>地區甲酸鹽>>(選擇)美國 – 2014-01-17 12:06:13

+0

感謝這幫助我解決了一個重大的崩潰問題與我應用程序。對於區域格式不同的用戶。 – vforvendetta 2014-04-28 22:39:21

2

謝謝解決它: [formatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@「US」] autorelease]];