iOS NSDate时间换算

iOS开发过程中,经常会用到时间,比如今天相对于过去某一天相差多少天,多少小时,多少分钟等等,还要换算,啊啊啊啊啊,什么加减乘除,什么12,什么60,什么24,统统滚蛋吧,今天为了时间,我也是拼了,下面我把经常用的时间一一列举出来了,希望能够对读者有所帮助;

在一个ViewController里面开始吧,gogogogoogogogo;

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    
    // 1、获取当前时间
    NSDate *now = [NSDate date];
    NSDateFormatter *nowFormate = [[NSDateFormatter alloc] init];
    nowFormate.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSString *nowTime = [nowFormate stringFromDate:now];
    NSLog(@"nowTime = %@",nowTime);
    
    // 2、拿现在的时间和过去时间或者将来时间对比,计算出相差多少天,多少年,多少秒等等;
    NSDate *beforTime = [nowFormate dateFromString:@"2014-06-14 19:25:00"];
    NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    
    //世纪
    NSInteger era  = kCFCalendarUnitEra;
    
    //年
    NSInteger year = kCFCalendarUnitYear;
    
    //月
    NSInteger month = kCFCalendarUnitMonth;
    
    //小时
    NSInteger hour = kCFCalendarUnitHour;
    
    //分钟
    NSInteger minute = kCFCalendarUnitMinute;
    
    //秒
    NSInteger second = kCFCalendarUnitSecond;
    
    NSDateComponents *compsEra = [calender components:era fromDate:beforTime toDate:now options:0];
    NSDateComponents *compsYear = [calender components:year fromDate:beforTime toDate:now options:0];
    NSDateComponents *compsMonth = [calender components:month fromDate:beforTime toDate:now options:0];
    NSDateComponents *compsHour = [calender components:hour fromDate:beforTime toDate:now options:0];
    NSDateComponents *compsMinute = [calender components:minute fromDate:beforTime toDate:now options:0];
    NSDateComponents *compsSecond = [calender components:second fromDate:beforTime toDate:now options:0];
    
    NSLog(@"相差世纪个数 = %ld",[compsEra era]);
    NSLog(@"相差年个数 = %ld",[compsYear year]);
    NSLog(@"相差月个数 = %ld",[compsMonth month]);
    NSLog(@"相差小时个数 = %ld",[compsHour hour]);
    NSLog(@"相差分钟个数 = %ld",[compsMinute minute]);
    NSLog(@"相差秒个数 = %ld",[compsSecond second]);
    
    // 3、获取时间戳(相对于1970年)
    CGFloat timestamp = now.timeIntervalSince1970;
    NSLog(@"距离1970年有多少秒 = %f",timestamp);
    
    // 4、计算距离现在有多少秒
    CGFloat sinceNow = beforTime.timeIntervalSinceNow;
    NSLog(@"距离现在有多少秒 = %f",fabs(sinceNow));
    
    
}

@end

输出结果:

2016-06-14 16:46:12.651 Timer[2811:639641] nowTime = 2016-06-14 16:46:12

2016-06-14 16:46:12.654 Timer[2811:639641]相差世纪个数 = 0

2016-06-14 16:46:12.654 Timer[2811:639641]相差年个数 = 1

2016-06-14 16:46:12.654 Timer[2811:639641]相差月个数 = 23

2016-06-14 16:46:12.654 Timer[2811:639641]相差小时个数 = 17541

2016-06-14 16:46:12.654 Timer[2811:639641]相差分钟个数 = 1052481

2016-06-14 16:46:12.654 Timer[2811:639641]相差秒个数 = 63148872

2016-06-14 16:46:12.654 Timer[2811:639641]距离1970年有多少秒 = 1465893972.649262

2016-06-14 16:46:12.654 Timer[2811:639641]距离现在有多少秒 = 63148872.654635


如果转载请注明转于:AirZilong的博客

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值