NSPredicate和NSDate的奇怪行为

时间:2014-02-20 13:51:28

标签: ios timestamp nsdate nspredicate behavior

我正在尝试使用NSPredicate过滤结果,但我在NSPredicate中对NSDate有一种奇怪的行为。

这是代码;

NSDate *auctionDate = obj[@"auctionDate"];
NSLog(@"%@", auctionDate);
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"auctionDate == %@", auctionDate];
NSLog(@"%@", predicate);

这是NSLog输出;

2014-02-21 00:00:00 +0000
auctionDate == CAST(414633600.000000, "NSDate")

如您所见,每个NSLog显示NSDate和NSPredicate字符串,但如果仔细观察,NSPredicate创建的NSDate和UNIX时间戳不相等。

转换为日期的414633600.0是“周一,2月21日 1983 00:00:00 GMT”,它们与原始NSDate不同。

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

NSDate使用的参考日期 2001年1月1日,GMT

不是1970年。