iOS - NSCalendar获得日期元素与时间的比较

来源:互联网 发布:课程表数据库设计 编辑:程序博客网 时间:2024/06/01 19:22

一 .使用获取需要的日期元素

// 当前时间NSDate *now = [NSDate date];// 创建日历对象NSCalendar *calendar = [NSCalendar currentCalendar];    // 获得NSDate的每一个元素NSInteger year = [calendar component:NSCalendarUnitYear fromDate:now];NSInteger month = [calendar component:NSCalendarUnitMonth fromDate:now];NSInteger day = [calendar component:NSCalendarUnitDay fromDate:now];// 输出NSLog(@"%zd年%02zd月%zd日", year, month, day);
其他时间依次类推,除了单个获取之外,还可以一次性获取多个
// 当前时间NSDate *now = [NSDate date];// 创建日历对象NSCalendar *calendar = [NSCalendar currentCalendar];    // 获得NSDate的每一个元素NSDateComponents *cmps = [calendar components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:now];// 输出NSLog(@"%zd年%02zd月%zd日", cmps.year, cmps.month, cmps.day);


二 .比较时间

// 当前时间NSDate *now = [NSDate date];// 另一个时间NSDate *other = XXX;// 日历NSCalendar *calendar = [NSCalendar currentCalendar];  // 比较时间NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour |                       NSCalendarUnitMinute | NSCalendarUnitSecond;NSDateComponents *cmps = [calendar components:unit fromDate:create toDate:now options:0];  NSLog(@"%@ %@", other, now);NSLog(@"%zd %zd %zd %zd %zd %zd", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);


0 0
原创粉丝点击