iOS 日期操作

日期操作
时间:2017年8月14日 周一

时间戳

NSString *str = @"1983-04-17";
NSDateFormatter *df = [[NSDateFormatter alloc]init];
df.dateFormat = @"yyyy-MM-dd";
NSDate *date = [df dateFromString:str];
    
NSTimeInterval  dd = [date timeIntervalSinceNow];//时间戳一直是负数
NSTimeInterval ss = [date timeIntervalSince1970];//时间大于1970是正数,否则负数    
    
NSDate *dds = [NSDate dateWithTimeIntervalSinceNow:dd];
NSDate *sss = [NSDate dateWithTimeIntervalSince1970:ss];

dds跟sss是相同日期

1、比较日期大小
默认会比较到秒,要记得设置日期格式

- (void)action {
    NSString *str = @"1990-04-17";
    NSDateFormatter *df = [[NSDateFormatter alloc]init];
    df.dateFormat = @"yyyy-MM-dd";
    NSDate *date = [df dateFromString:str];
    NSComparisonResult result =[date compare:[NSDate date]];
}

NSComparisonResult:
NSOrderedAscending ,升序, [A compare:B];,就像AB顺序一样,B更大,所以就是上升了;
NSOrderedSame, 相同
NSOrderedDescending:降序,A大于B

2、计算年龄:

//计算年龄
- (double )calculateAge:(NSString *)str {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyy-MM-dd";
    NSDate *birthDay = [dateFormatter dateFromString:str];
    //获取时间戳,时间戳是负数
    NSTimeInterval time = [birthDay timeIntervalSinceNow];
    double year = floor(ABS(time)/(3600.0 * 24 * 365)); //3600秒 * 24小时*365天
    return year;
}

3、计算时间差
用这个函数

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate;
- (void )calculateMargin:(NSString *)str {
    str = @"2018-08-14";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyy-MM-dd";
    NSDate *birthDay = [dateFormatter dateFromString:str];

    //现在的时间
    NSDate * nowDate = [NSDate date];
    //计算两个中间差值(秒),nowDate大于birthDay,time为正数
    NSTimeInterval time = [nowDate timeIntervalSinceDate:birthDay];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最近开发过程中,业务中一个预约的模块,用到了很多关于时间的操作,所以今天借此机会总结下开发中会常用到的日期以...
    longjianjiang阅读 2,241评论 0 0
  • NSDate NSDate对象用来表示一个具体的时间点。NSDate是一个类簇,我们所使用的NSDate对象,都是...
    GreenC阅读 16,733评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,493评论 19 139
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 5,193评论 0 20
  • 有一次,我骑着自行车沿着建国路回宿舍,一位带帽的女士骑着电动驶过我身旁,却还是晚了一秒,被红灯阻在了十字路口。我扭...
    西西山弗斯阅读 4,235评论 0 1