将DateTime转换为NSDate



我正在使用返回JSON WCF日期时间的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

因此,我需要一个更好的工作来处理dateString,它不假设每次我们都将获得10个字符。

您可以简单地获得(的索引和+的索引之间的子字符串。比如:

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

p。店员:检查一下有没有一次性错误。

最新更新