我正在使用一个返回JSON WCF日期时间的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
因此,我需要一个更好的方法来处理日期字符串,而不是每次都假设我们会获取10个字符。
NSString* secondsSince1970 = [dateString substringWithRange:NSMakeRange(begin.location + 1, end.location - begin.location - 4)];
我们需要去掉最后的三位数字,因为它是毫秒。 - Gavin1316397792913
是毫秒数。+0800
是时区。 - Gavin