2012-07-02 58 views
2

我從json文件接收下面格式的日期。林不知道,但我認爲它由.Net框架中的DataContractJsonSerializer類格式化。日期看起來像這樣從DataContractJsonSerializer格式化日期到iOS

\/Date(1255993200000+0100)\/ 

我想知道是否有人會知道我怎麼會轉換到這個日期一般在iOS上,或者如果我做任何事情來改變它。

感謝,

+0

日期似乎無效 –

+2

這是有效的 - 這實際上是塗e Oct 20 2009 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

歡迎..... :) –