2012-01-15 5 views
1

지역 코드를 미국으로 설정했을 때 다음 코드가 작동하는 이유를 알 수 없습니다.현지화 및 날짜

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; 
NSDate *date = [dateFormatter dateFromString:currentFeedPubDate]; 
NSLog(@"%@", date); 

그렇지 않으면 "(null)"을 반환합니다.

아무도 알아낼 수있는 이유는 무엇입니까?

답변

2

Krizz가 이미 언급했듯이 현지화 된 이름이 일치하지 않는 것이 문제입니다. 예를 들어 Sun, 15 Jan 2012 22:52:00 GMT+1과 같은 날짜를 입력하고 현재 독일어로 설정되어있는 경우 Sun을 인식하지 못합니다. 독일어 평일 이름의 약어를 찾지 만 찾을 수 없기 때문입니다. 입력 문자열의 형식을 로케일

당신이 알고 있다면 당신이 할 수있는 일 (그리고 필요)이 같은 날짜 포매터에 로케일을 강제로 : 또한

[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 
+0

당신의 탐구에 대해 모두 감사합니다. 그게 내가 전에 이해 못했던거야. –

2

currentFeedPubDate은 무엇인가요? 아마 Sun, 15 Jun 2012 22:31:30 GMT+1 같은 것이 겠지?

지금, 미국의 로케일에서 MMM이 (영어 1 월 ~) Jan과 같이 될 것입니다 반면, 폴란드어 로케일이 Sty 될 것입니다 점에 유의과 일치하지 않습니다 따라서 귀하의 문자열 (폴란드어 Styczeń 월의 이름에서).

+0

대부분 평일에는 이름이 걸려 넘어 질 것입니다 ... – DarkDust

0

, 당신이 경우 발생할 수있는 문제가 있습니다 누군가는 자신의 휴대 전화 환경 설정에서 12/24 설정을 토글합니다. 이 문제는 this thread에서 논의됩니다.

+0

우리는 왜 사용자가 원하는 것을 할 수있게합니까? 정보를 제공해 주셔서 감사합니다. –

+0

그래, 나는 좋은 사용자가 무엇인지 알아 내지 못했다. 단지 문제를 일으키는 것처럼 보인다. –