gpt4 book ai didi

ios - 使用来自 Parse.com 的 createdAt 日期时的 NSDate 准确性

转载 作者:行者123 更新时间:2023-11-28 18:57:10 24 4
gpt4 key购买 nike

在我的应用程序中,我需要从我的 Parse.com 后端获取一些对象的日期。例如,解析日期为:2015-06-30T10:37:23.642Z。

我将使用:

self.mostRecentMessageDate = object.createdAt;

其中 mostRecentMessageDate 是一个 NSDate 对象。但是,当我使用 NSLog 检查日期时,我得到 2015-06-30 10:37:23 +0000。似乎已经失去了毫秒的精度。这是因为 NSLog 显示日期的方式,还是我需要对 NSDate 对象做一些事情以使其更精确?

任何关于这方面的建议都很好,谢谢!

注意:

我需要这样做,因为当我查询我使用的对象时

[receivedMessagesQuery whereKey:@"createdAt" greaterThan:self.mostRecentMessageDate]; I want to make sure it isn't missing messages by ignoring the milliseconds part

最佳答案

是否丢失毫秒取决于 Parse.com 传输日期的方式(我没有使用 Parse.com 的经验)。

NSDate 在打印时省略了毫秒。如果您依赖这种精度的计算,您可以使用 timeIntervalSince… 方法获得更精确的值,例如 timeIntervalSince1970。这些方法返回一个 NSTimeInterval,它是一个 doubledocumentation说这种类型“在 10,000 年的范围内产生亚毫秒精度”,这对于大多数用途来说应该足够精确。

NSDate 比较方法确实考虑了毫秒数。您可以轻松地对此进行测试:

NSDate *d1 = [NSDate date];
NSDate *d2 = [NSDate date];
NSLog(@"%@ ?= %@ -- %d (%f, %f)", d1, d2, [d1 compare:d2], [d1 timeIntervalSince1970], [d2 timeIntervalSince1970]);

// Output:
// 2015-06-30 11:48:55 +0000 ?= 2015-06-30 11:48:55 +0000 -- -1 (1435664935.405415, 1435664935.405424)
// Note the "-1" here; if they were equal, it would be "0" instead.

关于ios - 使用来自 Parse.com 的 createdAt 日期时的 NSDate 准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com