WCF DateTime到NSDate

Gav*_*vin 3 iphone wcf objective-c nsdate ios

我正在使用返回JSON WCF DateTime的Web服务.

字符串就像 \/Date(1316397792913+0800)\/

我有兴趣1316397792在几秒钟内提取出1970年1月1日以来的时间.这样我就可以使用该NSDate timeIntervalSince1970方法来获取当前时间.我裁剪出最后3位数字,以毫秒为单位,timeIntervalSince1970以秒为单位.

这是我目前正在做的事情,它不适用于2001年以前的某个日期,自1970年以来的时间间隔为ms,不到10个字符.

NSString *dateString = @"\/Date(1316397792913+0800)\/";
    NSLog(@"dateString :%@", dateString);

    NSDate *date = [NSDate dateWithTimeIntervalSince1970:
                    [[dateString substringWithRange:NSMakeRange(6, 10)] intValue]];
    NSLog(@"NSDate:%@", date);

dateString :/Date(1316397792913+0800)/
NSDate:2011-09-19 02:03:12 +0000
Run Code Online (Sandbox Code Playgroud)

因此,我需要一个更好的工作来使用dateString,它不会假设我们每次都要提供10个字符.

Aks*_*hay 5

您可以简单地获取索引(和索引之间的子字符串+.就像是:

NSRange begin = [dateString rangeOfString:"("];
NSRange end = [dateString rangeOfString:"+"];
NSString* milliSecondsSince1970 = [dateString substringWithRange:NSMakeRange(begin.location + 1, end.location - begin.location - 1)];
Run Code Online (Sandbox Code Playgroud)

PS:检查一次性错误.