2011-11-24 3 views
0

날짜를 현지화하려고했지만 어떤 이유로 일부 지역에서 올바른 형식을 출력하지 않습니다. 이것은 내 코드를 테스트하는 방법이다NSDateFormatter가 지역에 따라 날짜가 일치하지 않습니다.

: 여기

if(dateformater==nil) 
dateformater =[[NSDateFormatter alloc] init]; 
[dateformater setLocale:[NSLocale currentLocale]]; 
[dateformater setDateStyle:NSDateFormatterMediumStyle]; 
[dateformater setTimeStyle:NSDateFormatterShortStyle]; 
NSString *string_date=[dateformater stringFromDate:date]; 
NSLog(@"Loacle:----%@ Date:----%@",[[NSLocale currentLocale] localeIdentifier],string_date); 

는 지역화 된 날짜 모양을 몇 가지 예이며, 여기서 잘못.

Loacle:----da_DK Date:----24/11/2011 14.10--------(WRONG) 
Loacle:----en_BE Date:----24 Nov 2011 14:09--------(OK) 
Loacle:----nl_BE Date:----24-nov.-2011 14:10------(WRONG) 
Loacle:----fr_BE Date:----24 nov. 2011 14:11-------(OK) 
Loacle:----en_US Date:----Nov 24, 2011 2:11 PM-----(OK) 
Loacle:----en_GB Date:----24 Nov 2011 14:11--------(OK) 

요구 사항에는 모든 지역에 대해 일관성을 유지해야한다고 명시되어 있습니다.

+0

왜 "잘못된"줄이 잘못 되었는 지 설명하십시오. – vocaro

+0

나는 loacale에 대한 일관된 수단을 원합니다 en_BE 구분 기호를 얻지 않고 월 기호를 얻지 만 da_DK는 날짜가 구분 기호로 바뀌고 11 월 대신 11 일이됩니다 – Narayana

답변

0

동일한 출력을 원한다면 동일한 로케일을 사용하거나 setDateFormat:을 사용해야합니다. 로케일을 사용하는 데있어 은 서로 다른 스타일의 형식입니다.

+0

동일한 출력을 원하지 않습니다. 로캘에 따라 날짜가 필요합니다. – Narayana

+0

아마도'setDateStyle :'과'setTimeStyle :'대신'setDateFormat :'을 사용하여 살펴볼 필요가 있습니다. –

+0

특정 형식을 설정하면 .as locale en_US가 표시됩니다. 2011 년 11 월 24 일 2:11 PM, locale en_GB는 2411 년 11 월 24 일 14시 11 분입니다. 날짜 및 월 순서가 변경 될 수 있습니다. – Narayana

관련 문제