我正在尝试实现dropBox同步,并且需要比较两个文件的日期。一个在我的dropBox帐户上,另一个在我的iPhone上。我提出了以下建议,但是得到了意想不到的结果。我猜比较两个日期时我做的是根本错误的事情。我只是使用了> <运算符,但是我猜这不好,因为我正在比较两个NSDate字符串。开始了:NSLog(@"dB...lastModified: %@", dbObject.lastModifiedDate); NSLog(@"iP...lastModified: %@", [self getDateOfLocalFile:@"NoteBook.txt"]);if ([dbObject lastModifiedDate] < [self getDateOfLocalFile:@"NoteBook.txt"]) { NSLog(@"...db is more up-to-date. Download in progress..."); [self DBdownload:@"NoteBook.txt"]; NSLog(@"Download complete.");} else { NSLog(@"...iP is more up-to-date. Upload in progress..."); [self DBupload:@"NoteBook.txt"]; NSLog(@"Upload complete.");}这给了我以下(随机和错误)输出:2011-05-11 14:20:54.413 NotePage[6918:207] dB...lastModified: 2011-05-11 13:18:25 +00002011-05-11 14:20:54.414 NotePage[6918:207] iP...lastModified: 2011-05-11 13:20:48 +00002011-05-11 14:20:54.415 NotePage[6918:207] ...db is more up-to-date.或这恰好是正确的:2011-05-11 14:20:25.097 NotePage[6903:207] dB...lastModified: 2011-05-11 13:18:25 +00002011-05-11 14:20:25.098 NotePage[6903:207] iP...lastModified: 2011-05-11 13:19:45 +00002011-05-11 14:20:25.099 NotePage[6903:207] ...iP is more up-to-date.
3 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
让我们假设两个日期:
NSDate *date1;
NSDate *date2;
然后,下面的比较将确定哪个是较早/较晚/相同:
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
请参阅NSDate类文档以获取更多详细信息。
胡子哥哥
TA贡献1825条经验 获得超6个赞
晚了,但是比较NSDate对象的另一种简单方法是将它们转换为原始类型,从而可以轻松使用'>''<''=='等
例如。
if ([dateA timeIntervalSinceReferenceDate] > [dateB timeIntervalSinceReferenceDate]) {
//do stuff
}
timeIntervalSinceReferenceDate将日期转换为自参考日期(格林尼治标准时间2001年1月1日)以来的秒数。当timeIntervalSinceReferenceDate返回NSTimeInterval(它是一个double typedef)时,我们可以使用原始比较器。
- 3 回答
- 0 关注
- 635 浏览
添加回答
举报
0/150
提交
取消