NSDate浅谈 当前时间,零点,过去一分钟,时间的比较

本文介绍Objective-C中使用NSDate进行时间获取、表示及比较的方法。包括获取当前时间、今天零点的时间表示方式、获取一分钟前的时间点,以及如何比较两个时间点的先后。此外,还介绍了如何使用无限的过去和无限的将来这两个特殊时间点来控制定时器的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前时间2种表示方法:

NSDate*  nowDate  = [NSDatedate];//现在的UTC时间也可以写成[[NSDate alloc] init];


今天零点2种表示方法:

    NSDate *startOfToday = [[NSCalendarcurrentCalendar] startOfDayForDate:nowDate];


     NSCalendar *calendar = [NSCalendarcurrentCalendar];

    NSDateComponents *components = [calendarcomponents:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDayfromDate:nowDate];

    NSDate *previousDate = [calendardateFromComponents:components];


距离现在之前的一分钟

NSDate* fromDate = [[NSDatealloc] initWithTimeIntervalSinceNow:-60];



时间的比较:

    NSDate* now = [NSDatedate];

    NSDate *zero = [[NSCalendarcurrentCalendar] startOfDayForDate:now];

    

    NSComparisonResult compareNow = [nowcompare:zero];


其中 

NSComparisonResult是个枚举:三种值

NSOrderedAscending       -1   Ascending上升的意思  左边早于(小于)右边

NSOrderedSame              

NSOrderedDescending    1  Descending下降的意思 左边晚于(大于)右边



+ (NSDate *)distantFuture; 无限的将来

+ (NSDate *)distantPast;无限的过去 

可以用来设置定时器的:开启和关闭

//开启定时器   [self.myTimer setFireDate:[NSDate distantPast]];

//关闭定时器   [self.myTimer setFireDate:[NSDate distantFuture]];  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值