JSON日期与NSDate的偏移量

时间:2011-07-19 18:12:50

标签: objective-c cocoa

我正在Mac上开发一个Cocoa应用程序,我正在使用一个WCF服务,它返回一个来自SQL Server DATETIMEOFFSET字段的JSON日期。从服务返回的JSON对象(包括日期字段)概述如下:

{
    "ObjectId": 1,
    "Name": "My Object Name",
    "Description": "My Object Description",   
    "CreateDate": {
        "DateTime": "/Date(1306481778297)/",
        "OffsetMinutes": 0
    },
    "LastModifiedDate": {
        "DateTime": "/Date(1306936930427)/",
        "OffsetMinutes": 0
    }
}

我的问题是如何将CreateDate和LastModifiedDate字段转换为NSDate对象?

我试图创建一个NSDateFormatter并以这种方式抽象值。但是,这适用于简单的字符串日期或标准JSON日期(/ Date(1306936930427)/),但不适用于包含日期和偏移量的日期对象。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]
NSString *creationDate = [myObject valueForKey:@"CreateDate"];
NSDate *date = [dateFormatter dateFromString:creationDate];

非常感谢任何有关这方面的帮助。

1 个答案:

答案 0 :(得分:2)

首先,从字符串中提取数字(例如1306936930427); NSScanner可能会派上用场。然后除以1000.0并使用NSDate的dateWithTimeIntervalSince1970:类方法来获取NSDate。