objective-c - 带有 NSDate 偏移量的 JSON 日期

标签 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];

对此的任何帮助将不胜感激。

最佳答案

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

关于objective-c - 带有 NSDate 偏移量的 JSON 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751999/

相关文章:

ios - 如何将 UIDevice.h 还原为原始版本?

objective-c - 将 NSTableView 滚动到选择

cocoa - 将 NSTimer 放置在单独的线程中

xcode - CIFilter 在为 32 位构建时可以工作,但在为 64 位构建时不会出现?

java - 在 iOS 5 中使用 Java 类

ios - 容器中的导航栏

objective-c - 在有限数量的线程上并行订阅 ReactiveCocoa 信号

xcode - 检查进程是否正在从 cocoa 应用程序中运行

objective-c - Cocoa:从另一个类触发 NSWindow makeKeyAndOrderFront 实例方法

ios - UiTextView 文本来分隔 UITextField 的