2017-09-20 5 views
0

이전처럼 Xcode 9에서는 DateFormatter와 관련하여 문제가 없었습니다.NSDateFormatter MMM 변환

업데이트로 인해 우회 할 수없는 문제가 있습니다.

NSDate에서 NSString으로 날짜를 변환하는 중입니다. 그러나 NSDate를 초기화 할 수없는 것 같습니다.

내 코드 : 나는 기능을 설정 나는 다양한 방법으로 문자열을 조작 시도

NSString *testdate = @"Sep 20 2017 1:46PM"; // this is how my date looks 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"MMM dd yyyy hh:mma"]; 

NSDate *thisDate = [df dateFromString: testdate]; // this returns nil 

, 그리고 후에 나는 DATEFORMAT 문제가 나타난 것을 발견.

누구든지이 문제와 가능한 해결책을 찾았습니까?

편집 :

난에이 가진 유일한 장치는 아이폰 OS (11)와 아이폰 7 (아이폰 OS (10)와 두 개의 서로 다른 장치가 테스트 한 아이폰 7도 제대로 작동). 나는 iPhone 6 Plus와 iOS 11에있는 iPhone 7 Plus를 가지고 있으며, 이들 모두는 작동 중입니다 ... 시간 형식으로 ...

[NSDate 날짜]를 같은 날짜의 문자열로 변환하면 포맷터가 내 결과입니다 : M09 20 2017 1:46 PM ... - 이것이 날짜 형식 문제였습니다 (timeformat을 테스트 할 때 변경된 것 같습니다). 그러나 이제는 문제가되지 않습니다.

+0

는이'[있는 NSDate 날짜]에 관련된 코드 변환이 일로부터 문자열로 이제 올바른 Anbu.Karthik @' –

+0

을 표시 할 수 있습니다 그러나 지금까지 문자열은 여전히이 변경 될 – Burnie777

+0

날짜가 정확한 답 –

답변

1

더 자세히 조사한 후 DateFormatter를 설치 한 것처럼 작동하는 데 Locale을 추가해야하는 것처럼 보입니다 ... 서버에서 가져온 날짜 때문에 사용하지 않아서 변경할 수 없습니다 뿐만 아니라 웹 사이트.

나는 AM/PM으로 서버에서 날짜를 받아 로케일이는 내가 가진 문제를 해결 문제

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"MMM dd yyyy hh:mma"]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 

를 해결했다.

+0

을 생성하지 않습니다 실패 사용자의 로켈이 영어가 아닌 다른 언어로 설정된 경우 iOS 또는 Xcode의 모든 버전에서 필요합니다. – rmaddy

+0

좋아, 나는이 문제에 사전에 부딪치지 않았다 ... 단지 지금 ... 그러나 그 좋은 것을 알고있다. – Burnie777