ios에서 시스템 시간 형식을 가져 오는 데 다음 코드를 사용하고 있습니다. 현재 지역이 "United State"로 설정되어 있지만 "United State"에서 "United Kingdom"으로 지역을 변경하면 항상 12 시간 동안 formate가 제공됩니다. 32 :은 "미국 국무부"영역지역이 "영국"인 경우 시스템 시간 형식을 얻는 방법은 무엇입니까?
#pragma mark
#pragma mark - get system time
-(BOOL)getSystemTimeFormat
{
NSString *strDateFormate = @"hh a";
NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:strDateFormate options:0 locale:[NSLocale currentLocale]];
if ([dateFormat rangeOfString:@"h"].location != NSNotFound)
{
[kNSUserDefaults setBool:YES forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return YES;
}
else
{
[kNSUserDefaults setBool:NO forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return NO;
}
}
로그 ::
2015년 1월 27일 11 16.090 [350 : 60B] 12 : 0 편대
은 "영국"영역의 :: 1,515,
2015년 1월 27일 11 : 32 : 16.585 [350 : 60b] 연결
2015-01-27 11 : 32 : 16.591 [350 : 60b] 교체 업데이트 ...
2015-01-27 11 : 32 : 16.604 [350 : 60b] 로크 업데이트 ...
2015-01-27 11 : 32 : 16.622 [350 : 60b] 로크 업데이트 ...
로그인
2015년 1월 27일 11 : 33 : 35.785 [364 : 60B] 12 : 1 편대
2015년 1월 27일 11 : 33 : 36.777 [364 : 60b] 연결
2015-01-27 11 : 33 : 36.780 [364 : 60b] 회신 업데이트 ...
2015-01-27 11 : 33 : 36.806 [364 : 60b] ...
2015-01-27 11 : 33 : 36.832 [364 : 60b] 회송 업데이트 ...
이와 관련하여 많은 질문이 있습니다.마지막으로 * 표시된 문자열은 템플릿에 제공된 구성 요소를 정확하게 포함 할 수 없지만 예를 들어 로캘 별 조정이 적용될 수 있습니다. *] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/# // apple_ref/occ/clm/NSDateFormatter/dateFormatFromTemplate : options : locale :). 포매터에 올바른 결과를 보장하려면 로케일'en_US_POSIX'을 사용하십시오. – Petesh
@Petesh'en_US_POSIX'를 사용하면'dateFormatFromTemplate' 메소드를 사용하는 목적을 상실합니다. – rmaddy
나는 그 사실을 잘 알고있다. 문제는 사용자가 요청한 형식 즉, 요청 된 24 시간 형식이 아닌 12 시간으로 끝나는 형식을 변경하는 등의 로캘 별 조정이 포함된다는 것입니다. 애플은 프로그래머가 아닌 사용자를 연기하는 것이 이것과 함께 할 수있는 방법이라고 생각한다. – Petesh