2013-10-24 2 views
1

현재 기존 XML을 사용하고 날짜 응답을 구문 분석하는 데 문제가있는 인터페이스를 만들고 있습니다. XML은 IOS 애플리케이션에서 소비 될 것입니다.NSDateFormatter는 .fffffff로 끝나는 형식에 대해 nil을 반환합니다.

는 XML의 날짜 시간 형식은 다음과 같습니다 MM/dd/yyyy HH:mm:ss.fffffff

는, 우리는 적절한있는 NSDate에 해당 응답을 변환해야합니다. 그러나 우리는 그 형식을 작동시키지 못했습니다.

간단한 테스트 :

NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"MM/dd/yyyy HH:mm:ss.fffffff"]; 
NSDate * dob1 = [[NSDate alloc]init]; 
dob1 = [df dateFromString:@"03/26/1983 01:10:10.0000000"]; 

이 ... dob1이이 작업을 수행 ...

NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"MM/dd/yyyy HH:mm:ss.0000000"]; 
NSDate * dob1 = [[NSDate alloc]init]; 
dob1 = [df dateFromString:@"03/26/1983 01:10:10.0000000"]; 

nil을 반환하지만 '0.0000000'

가능합니다 모든 제안을 부탁드립니다. 감사.

+0

소수 초'S'가 아닌'f'를 사용해야이 포매터를 사용해야합니다. http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns – rmaddy

답변

0

당신은

@"MM/dd/yyyy HH:mm:ss.SSSSSSS" 
+0

놀라운 것을 참조하십시오. 이전에 '.sssssss'를 시도했지만 대문자로 작성하지 않았다고 생각합니다. 고마워, 완벽 했어. –

0

rmaddy의 답변을 확장하려면 NSDateFormatter의 형식 문자열에 입력 할 수있는 값은 타겟팅하려는 iOS (또는 OS X)의 버전에 따라 다릅니다. Data Formatting Guide에서

:

고정 형식

이 날짜 포맷에 대한 사용자 정의 고정 된 형식을 지정하려면 setDateFormat를 사용 :. 형식 문자열은 유니 코드 기술 표준 # 35의 형식 패턴을 사용합니다. 표준의 버전은 운영 체제의 출시와 함께 다릅니다 : OS X의 v10.8 및 아이폰 OS 6.0을 사용 버전 tr35-25에서

  • 포매터.

  • iOS 5.0-5.1의 포맷터는 tr35-19 버전을 사용합니다.

  • OS X v10.7 및 iOS 4.3의 포맷터는 tr35-17 버전을 사용합니다.

  • iOS 4.0-4.2의 포맷터는 tr35-15 버전을 사용합니다.

  • iOS 3.2의 포맷터는 tr35-12 버전을 사용합니다.

  • OS X v10.6 및 iOS 3.0-3.1의 포맷터는 tr35-10 버전을 사용합니다.

당신이해야 항상 다시 확인 사용할 포맷터 당신이 지원하는 모든 플랫폼에서 사용할 수있게려고하고있다.

귀하의 경우 rmaddy가 iOS 5.x 및 iOS 6 모두에서 올바르게 S이라고 정확하게 지적하는 "소수 초"를 찾고 있습니다.X