我正在 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];
对此的任何帮助将不胜感激。
最佳答案
首先,从字符串中提取数字(例如1306936930427); NSScanner可能会派上用场。然后将其除以 1000.0 并使用 NSDate 的 dateWithTimeIntervalSince1970:
类方法来获取 NSDate。
关于objective-c - 带有 NSDate 偏移量的 JSON 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751999/