0

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

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

使用 SBJSON 转换这种格式化日期的方法是什么?我使用将值提取到 NSString

//dict is NSDictionary with Dashboard
NSString* dateString=[dict objectForKey:@"Date"];

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

4

2 回答 2

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];
}
于 2012-03-29T06:10:09.867 回答
1

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

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

NSDate *date = [NSDate dateWithTimeIntervalSince1970:SOME_TIME_INTERVAL];

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

于 2012-01-10T01:30:26.003 回答