我正在使用返回JSON WCF DateTime的Web服务。
字符串就像\/Date(1316397792913+0800)\/
我有兴趣提取1316397792
,它是自1970年1月1日以来的时间(以秒为单位)。这样我就可以使用NSDate timeIntervalSince1970
方法获取当前时间。我以毫秒为单位裁剪了最后3位数字,而timeIntervalSince1970
则以秒为单位。
这是我目前正在执行的操作,它不适用于2001年之前的某个日期,该日期自1970年以来的时间间隔(毫秒)少于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
因此,我需要更好地解决dateString的问题,该方法不能假定我们每次都要使用10个字符。
最佳答案
您可以简单地获取(
的索引和+
的索引之间的子字符串。就像是:
NSRange begin = [dateString rangeOfString:"("];
NSRange end = [dateString rangeOfString:"+"];
NSString* milliSecondsSince1970 = [dateString substringWithRange:NSMakeRange(begin.location + 1, end.location - begin.location - 1)];
附言:检查一次错误。