将“NS.time”从plist转换为实际时间

时间:2014-10-09 09:01:30

标签: python objective-c macos

我可以在plist文件中找到以下数据:

enter image description here

"NS.time"是数字值的关键。

NSLog(@"Type: %@", [[obj objectForKey:@"NS.time"] class]);
NSLog(@"My dictionary: %@", obj);

2014-10-09 11:04:49.409 MyApp[3792:303] Type: __NSCFNumber
2014-10-09 10:34:46.393 MyApp[3644:303] My dictionary: {
    "NS.time" = "434488287.651975";
}

这几秒钟?毫秒?微秒? 如何从中获取适当的时间信息?

修改

我发现使用Python可能是正确的日期:

>>> datetime.datetime(2001, 1, 1) + datetime.timedelta(seconds=434488287.651975)
datetime.datetime(2014, 10, 8, 19, 11, 27, 651975)

如何使用Objective-C执行此操作?

1 个答案:

答案 0 :(得分:1)

  1. 为2001,1,1创建NSDate。
  2. 使用NSDate - (id)dateByAddingTimeInterval:(NSTimeInterval)seconds获取新日期。 NSDate *tagDate = [referenceDate dateByAddingTimeInterval:434488287.651975];

  3. 按OP编辑:

    以下是我使用的完整代码:

    NSTimeInterval interval = [[obj objectForKey:@"NS.time"] doubleValue];
    NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:interval];
    
    在这种情况下,

    dateWithTimeIntervalSinceReferenceDate非常有用。它创建并返回一个NSDate对象,从2001年1月1日格林尼治标准时间的第一个瞬间开始,给定的秒数。