2012-07-02 2 views
2

json 파일에서 날짜 형식을 아래 형식으로받습니다. 임 확실하지 않지만 그 생각은 그 형식의 DataContractJsonSerializer 클래스. 닷넷 프레임 워크. 날짜는 사람이 내가 iOS에서 정상적인 날짜에이 변환 것 또는 내가 무엇을해야 할 경우 변경하는 방법을 알고 것인지 궁금 해서요이날짜를 DataContractJsonSerializer에서 iOS로 바꿈

\/Date(1255993200000+0100)\/ 

것 같습니다.

감사합니다,

+0

날짜에 보인다 유효하지 않음 –

+2

유효합니다. 실제로 이것은 Tu입니다. 2009 년 10 월 20 일 01:00:00 (1970 년부터 초 단위) – Stavash

답변

6

-(NSDate*)mfDateFromDotNetJSONString:(NSString *)string 
{ 
    static NSRegularExpression *dateRegEx = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     dateRegEx = [[NSRegularExpression alloc] initWithPattern:@"^\\/date\\((-?\\d++)(?:([+-])(\\d{2})(\\d{2}))?\\)\\/$" options:NSRegularExpressionCaseInsensitive error:nil]; 
    }); 
    NSTextCheckingResult *regexResult = [dateRegEx firstMatchInString:string options:0 range:NSMakeRange(0, [string length])]; 

    if (regexResult) 
    { 
     // milliseconds 
     NSTimeInterval seconds = [[string substringWithRange:[regexResult rangeAtIndex:1]] doubleValue]/1000.0; 
     // timezone offset 
     if ([regexResult rangeAtIndex:2].location != NSNotFound) { 
      NSString *sign = [string substringWithRange:[regexResult rangeAtIndex:2]]; 
      // hours 
      seconds += [[NSString stringWithFormat:@"%@%@", sign, [string substringWithRange:[regexResult rangeAtIndex:3]]] doubleValue] * 60.0 * 60.0; 
      // minutes 
      seconds += [[NSString stringWithFormat:@"%@%@", sign, [string substringWithRange:[regexResult rangeAtIndex:4]]] doubleValue] * 60.0; 
     } 

     return [NSDate dateWithTimeIntervalSince1970:seconds]; 
    } 
    return nil; 
} 

을 시도하고이 기능

이 나를 위해 도움을

[NSString stringWithFormat:...]를 사용하여 문자열을 전달하고 그것은 당신에게 도움이되기를 바랍니다

+0

완벽하게 작동했습니다. 감사합니다 :) – CodeGeek123

+0

환영 ..... :) –

관련 문제