如何在SBJSON中解析/日期(xxx + 0000)/

时间:2012-01-09 15:19:08

标签: iphone objective-c sbjson

我正在尝试使用.NET服务生成的日期将JSON解析为NSDate对象

{
 "Dashboard": {
    "Date": "/Date(1326063600000+0000)/"
    }
}

使用SBJSON转换此格式化日期的方法是什么?我使用

将值提取到NSString
//dict is NSDictionary with Dashboard
NSString* dateString=[dict objectForKey:@"Date"];

然后停了下来。任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:2)

这是我从.NET解析的类别

//parses a date from format "/Date(0000000000000+0000)/"
+(NSDate*)dateFromEpocString:(NSString*)epocString {

    if ([epocString isEqual:[NSNull null]])
        return nil;

    NSString* miliMinutes = [epocString substringWithRange:NSMakeRange(6,13)];
    long long minutesSince1970 = [miliMinutes longLongValue] / 1000;
    int timeOffset = [[epocString substringWithRange:NSMakeRange(19,3)] intValue];
    long long minutesOffset = timeOffset * 60 * 60;
    return [NSDate dateWithTimeIntervalSince1970:minutesSince1970 + minutesOffset];
}

答案 1 :(得分:1)

从评论中,听起来你已经提取了时间戳。

您可能想要使用NSDate epoch构造函数:dateWithTimeIntervalSince1970:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:SOME_TIME_INTERVAL];

在这种情况下,SOME_TIME_INTERVAL将是NSTimeInterval(只是double的别名)值:1326063600。不要忘记将得到的值除以1000.NSTimeIntervals以秒为单位,而不是毫秒。