谁能解释为什么捕获的 [NSDate date] 时间比系统时间晚大约 39 分钟?

Can anyone explain why captured [NSDate date] time is about 39 minutes behind the system time?

在 Xcode 12 中的一个单元测试中,我有以下代码片段:

    NSDate *timestamp = [NSDate date];
    NSDateFormatter *timestampFormatter = [[NSDateFormatter alloc] init];
    [timestampFormatter setDateFormat:@"YYYY-MM-dd 'at' HH:MM:ss.SSSXXXXX"];
    NSLog(@">>>>> Timestamp: %@", [timestampFormatter stringFromDate:timestamp]);

我得到的单元测试输出为:

2021-03-26 16:42:32.109836-0700 xctest[23961:1430979] >>>>> 时间戳:2021-03-26 16:03:32.110-07:00

注意捕获的时间戳与输出行的时间戳有何不同! 输出行的时间戳确实与当前系统时间相关,而捕获的时间戳落后大约 39 分钟。整个片段需要亚秒级到 运行 :)

the captured timestamp is about 39 minutes behind

不,不是。这就是您 显示 时间戳的方式。问题在于格式的第二部分 HH:MM:ss.SSSXXXXX 表示“显示小时数、月数 和秒数。”这可能不是你想要的。

所以当它是 16:42:32 时,您会看到 "16:03:32" 来自您的格式化程序,因为 03