iphone - 使用 nsdate 比较两个日期

标签 iphone ios nsdate

在我的应用程序中,我必须比较两次:当前时间(12:44)和我尝试过的情况:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm"];
NSDate *neededDate = [[NSDate alloc] init];
neededDate = [dateFormatter dateFromString:@"14:45"];
if ([neededDate compare:[NSDate date]] == NSOrderedAscending) {
NSLog(@"yes");
} else NSLog(@"no");
[neededDate release];
[dateFormatter release];

但是每当我启动它时,NSLog 都会说“不”。请指出我错在哪里。先感谢您。

最佳答案

因为您的 neededDate 将等于 "1970/01/01 14:45"

您需要设置正确的年份和日期。

您可以获得当前年、月并说,例如,使用下一种方法:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
NSLog(@"Current year: %d", components.year);
NSLog(@"Current month: %d", components.month);
NSLog(@"Current day: %d", components.day);

关于iphone - 使用 nsdate 比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901061/

相关文章:

iphone - 哪个是适用于 iPhone 开发的 ShareKit 的最佳克隆?

iphone - 如何将图像和录制文件保存在临时目录中?

ios - 如何为 Facebook API 验证 UIViewController

ios - 在iphone中查找两个日期之间的总天数

ios - NSDateFormatter - 无法从 Twitter JSON API 解析日期

iphone - SFBAudioEngine 的编译问题

iphone - 我的*整个*游戏必须重新制作才能使用 Cocos2D 吗?

ios - 如何正确管理屏幕上的 Sprite 组

ios - 在哪里快速设置委托(delegate)?

objective-c - Objective-C - 如何从 NSDate 获取工作日?