NSDateFormatter는 장치 및 시뮬레이터에 다른 값을 제공합니까? 주변의 작업은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1803169

문제

나는 nsdateformatter를 사용하고 있습니다. 문제는 일관성이 있습니다. KCFDateFormatterMediumStyle을 사용하면 시뮬레이터에서 "2009 년 11 월 26 일"로 형식을 제공하지만 장치에서는 "26-Nov-2009"를 제공합니다.

이제 질문이 있습니다.이 nsformatter 신뢰할 수있는 수단은 가까운 시일 내에 또는 Apple의 업데이트가 스타일을 다시 바꿀 수 있습니까?

도움이 되었습니까?

해결책

NSDateFormatter는 장치의 국제 설정에 따라 사용자 선호도의 날짜를 형식화합니다. 따라서 전 세계에 날짜가 표시되는 다양한 방법으로 인해이 문자열이 일관성이있을 것으로 기대할 수 없습니다.

날짜를 문자열로 서식하는 가장 좋은 방법을 찾았습니다 (웹 서버 등에 사용하는 데 사용)는 nsdatecomponents를 사용하고 이것을 문자열로 변환하는 것입니다.

다른 팁

위에서 언급 한 다른 대답은 기술적으로 정확하지만 원하는 솔루션을 제공하지는 않습니다. NSDateFormatter는 사용자 로케일 사용에 대한 기본값 (그리고 유용한 결과를 제공하지 않음)에 비해 일관된 결과를 얻기 위해 특정 로케일을 요청할 수 있습니다.

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top