2017-10-06 9 views
0

장치 시간을 24 시간 형식으로 변경하면 NSDate가 0이됩니다.NSDate가 nil이됩니다.

NSString *stampStr = @"10/6/2017 8:57:44 AM"; 
NSDateFormatter *oldFormatter = [NSDateFormatter new]; 
[oldFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
NSTimeZone *tz = [NSTimeZone timeZoneForSecondsFromGMT:10800]; // GMT+3 
[oldFormatter setTimeZone:tz]; 
NSDate *oldDate = [oldFormatter dateFromString:stampStr]; 

그러나 iPhone 장치에서 12 시간 형식으로 변경하면 정상적으로 작동합니다.

+1

locale을 설정해야합니다 – Sulthan

+0

//developer.apple.com/library/content/qa/qa1480/_index.html 정보 주셔서 감사합니다 – user6788419

답변

0

당신은 당신은 POSIX.https에 로케일을 설정해야합니다 귀하의 NSDateFormatter

oldFormater.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];