美文网首页
关于时间NSDate的处理

关于时间NSDate的处理

作者: Michael_NO1 | 来源:发表于2017-07-24 12:04 被阅读4次
以下NSDate的分类中写  
//  NSDate+Extension.m
 #import "NSDate+Extension.h"
@implementation NSDate (Extension)
/**
 *  是否为今天
 */
- (BOOL)isToday {

    NSCalendar *calendar = [NSCalendar currentCalendar];
    
    int unit = NSCalendarUnitDay | NSCalendarUnitMonth |  NSCalendarUnitYear;
    
    // 1.获得当前时间的年月日
    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];
    // 2.获得self的年月日
    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];
    
    return (selfCmps.year == nowCmps.year) && (selfCmps.month == nowCmps.month) && (selfCmps.day == nowCmps.day);
}

/**
 
 *  是否为昨天
 
 */
- (BOOL)isYesterday {
    // 2014-05-01
    NSDate *nowDate = [[NSDate date] dateWithYMD];
    // 2014-04-30
    
    NSDate *selfDate = [self dateWithYMD];
    
    // 获得nowDate和selfDate的差距
    
    NSCalendar *calendar = [NSCalendar currentCalendar];
    
    NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];
    
    return cmps.day == 1;
}

/**
 
 *  是否为今年
 
 */

- (BOOL)isThisYear {
    
    NSCalendar *calendar = [NSCalendar currentCalendar];
    
    int unit = NSCalendarUnitYear;
    
    // 1.获得当前时间的年月日
    
    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];
    
    // 2.获得self的年月日
    
    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];
    
    return nowCmps.year == selfCmps.year;
}

/**
 
 *  返回一个只有年月日的时间
 
 */
- (NSDate *)dateWithYMD {
    
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    
    fmt.dateFormat = @"yyyy-MM-dd";
    
    NSString *selfStr = [fmt stringFromDate:self];
    
    return [fmt dateFromString:selfStr];
}
/**
 
 *  获得与当前时间的差距
 
 */
- (NSDateComponents *)deltaWithNow {
    
    NSCalendar *calendar = [NSCalendar currentCalendar];
    
    int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    
    return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];
}
/*
 为星期几
 */
- (NSString *)dateWithWeek {
    NSArray *weekday = [NSArray arrayWithObjects: [NSNull null], @"星期日", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六", nil];
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:self];
    
    return [weekday objectAtIndex:components.weekday];
}

@end

相关文章

  • 关于时间NSDate的处理

  • 时间日期处理

    NSString -> NSDate 处理国内时间格式 NSString -> NSDate 处理国际时间格式 N...

  • NSDate的介绍和使用 - OC

    NSDate的介绍: NSDate可以用来表示时间, 可以进行一些常见的日期\时间处理 一个NSDate对象就代表...

  • Objective-C基础学习之NSDate 和 NSCalen

    1.NSDate基本概念 NSDate可以用来表示时间, 可以进行一些常见的日期\时间处理 一个NSDate对象就...

  • iOS获取NSDate的年月日

    开发中我们有的时候会对日期时间进行大小比较,时间格式化,时间的年份,月份,天进行处理,关于获取NSDate的的年月...

  • NSDate

    NSDate类,是Objec-C 语言种时间的封装类,处理关于时间的一些功能。大致总结了一下: 1、获取当前时间 ...

  • NSString的扩展(Category)

    | 用到的其他的扩展NSDate 的扩展(Category) 时间处理 针对评论时间处理 描述: 通过传入一个日期...

  • 关于 UITableViewCell 的一些设置

    | 用到的一些扩展类NSDate 的扩展(Category) 时间处理 针对评论时间处理UIImage 的扩展(C...

  • iOS关于时间:NSDate

    获取当前时间: NSDate *localDate = [NSDate date]; 获取UIDatePicker...

  • iOS日期处理

    服务器返回的时间是字符串,手机获取的时间是NSDate,需要进行转换。 凡是日期处理,这三个类足够了 NSDate...

网友评论

      本文标题:关于时间NSDate的处理

      本文链接:https://www.haomeiwen.com/subject/zwfbkxtx.html