日期和时间

NSDate:表示一个具体的时间点

当前时间

NSDate * now = [[NSDate alloc] init];
now = [NSDate date];
NSLog(@"now=%@",now);

时间格式化

NSDateFormatter * f = [[NSDateFormatter alloc] init];
f.dateFormat = @"yyyy-MM-dd";

时间转字符串
NSLog(@"%@",[f stringFromDate:now]);

时间增减

NSString * currDateStr = [f stringFromDate:now];
NSDate * currDate = [f dateFromString:currDateStr];

NSDate * yesterday = [[NSDate date] dateByAddingTimeInterval:-86400];
NSDate * tomorrow = [[NSDate date] dateByAddingTimeInterval:86400];

字符串转时间

NSString * todayStr = @"2018-10-16";
yesterday = [f dateFromString:todayStr];
NSLog(@"%@",yesterday);

日期转时间戳

float ts = [yesterday timeIntervalSince1970];//1970到现在的时间戳
NSLog(@"%f",ts);

float ts1 = [yesterday timeIntervalSinceNow];//时间戳差值
NSLog(@"yesterday-当前时间戳=%f",ts1);//-120331.656250

float ts2 = [yesterday timeIntervalSinceDate:currDate];//时间戳差值
NSLog(@"yesterday-currDate=%f",ts2);

时间戳转日期

NSDate * date1 = [NSDate dateWithTimeIntervalSince1970:ts];
NSLog(@"%@",date1);

NSCalendar:用于处理时间相关问题。比如比较时间前后,计算日期所在周等

获取年份、月份、日期、小时、分钟、秒、星期等

NSCalendar * calendar = [NSCalendar currentCalendar];
NSDate * now = [NSDate date];
NSCalendarUnit * unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ;
NSDateComponents * components = [calendar components:unit fromDate:now];
NSLog(@"%@",components);//月份:components.year

比较两个日期的差值

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd hh:mm:ss";
NSDate * date1 = [formatter dateFromString:@"2018-10-01 8:00:00"];
NSDate * date2 = [formatter dateFromString:@"2019-12-01 9:00:00"];
components = [calendar components:unit fromDate:date1 toDate:date2 options:0];
NSLog(@"%@",components);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章