您的位置:首页 > 移动开发 > IOS开发

iOS NSDate时间换算

2016-06-14 17:00 399 查看
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的博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Objective-C iOS ios开发