다음 코드는 작동하지만 더러울 것 같습니다. 거기에 오프셋을 사용하여 신기원을 NSDate로 변환하는 더 표준적인 방법이 있습니까?WCF REST 서비스에서 생성 된 JSON에서 NSDate 가져 오기
- (NSDate *) dateFromJSONString: (NSString *) JSONString{
//expects JSON from .NET WCF Service in epoch ticks, ex:
//"timeScheduled":"\/Date(1348600140000+0100)\/"
NSString *date = [[JSONString stringByReplacingOccurrencesOfString:@"/Date(" withString:@""] stringByReplacingOccurrencesOfString:@")/" withString:@""];
NSString *offsetString = [date substringFromIndex:(date.length - 5)];
//convert to seconds
NSTimeInterval dateInterval = [date doubleValue] /1000;
//gets offset value in seconds - +0100 -> 100 -> 1 -> 3600
double offsetValue = ([offsetString doubleValue]/100) * 60 * 60;
if ([[offsetString substringToIndex:1] isEqualToString:@"+"]) {
dateInterval = dateInterval + offsetValue;
}
else{
dateInterval = dateInterval - offsetValue;
}
NSDate *retVal = [[NSDate alloc]initWithTimeIntervalSince1970:dateInterval];
return retVal;
}
이 링크는 질문에 대한 답변 일지 모르지만 여기에 답변의 핵심 부분을 포함하고 참조 할 수있는 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – fancyPants
충분히 좋습니다. 나는 좀 간결했다. :) –
답변과 코드는 iOS8에서 완벽하게 작동했습니다. – AshesToAshes