ios日期处理

目录:

1、字符串转换为日期;

2、时间戳转换为日期;

3、日期转换为字符串

4、获取日期中的年、月、日、时、分、秒;

5、日期比较(比较大小、比较相差的日期)

1、字符串转换为日期;

//第一种样式转换

NSString*created =@"2016-11-30 09:10:05";

//NSDateFormatter作用:日期,字符串之间的相互转换

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

//字符串转换过程中,各个数字所代表的日期单位

formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";

//得到对应的日期

NSDate*createdDate = [formatterdateFromString:created];

//第二种样式转换

NSString*created =@"Tue May 31 17:46:45 +0000 2011";

//NSDateFormatter作用:日期,字符串之间的相互转换

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

//EEE星期;Z时区

formatter.dateFormat=@"EEE MMM dd HH:mm:ss Z yyyy";

formatter.locale= [NSLocalelocaleWithLocaleIdentifier:@"en_US"];

NSDate*createdDate = [formatterdateFromString:created];


2、时间戳转换为日期;

//时间戳:从1970年1月1号00:00:00开始走过的毫秒数

NSString*string =@"645645645645";

//1秒=1000毫秒

NSTimeIntervalsecond =string.longLongValue/1000.0;

//时间戳转换为日期

NSDate*date = [NSDatedateWithTimeIntervalSince1970:second];

3、日期转换为字符串

//当前时间

NSDate*date = [NSDate date];

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

formatter.dateFormat=@"EEE MM dd HH:mm:ss yyyy";

NSString*string = [formatterstringFromDate:date];

4、获取日期中的年、月、日、时、分、秒;

//时间字符串

NSString*created =@"2016-08-30 09:10:05";

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";

NSDate*date = [formatterdateFromString:created];

// NSCalendar处理日期,判别版本,不同操作系统用不同代码,否则可能出现些问题

NSCalendar*calender =nil;

if([UIDevicecurrentDevice].systemVersion.doubleValue>=8.0) {

calender = [NSCalendarcalendarWithIdentifier:NSCalendarIdentifierGregorian];

}else{

calender = [NSCalendarcurrentCalendar];

}

//不同的枚举类型,代表不同的日期单位,下面的例子获取了日期对应的月份,和星期

NSInteger  era = [calendercomponent:NSCalendarUnitErafromDate:date];

NSCalendarUnit  unit =NSCalendarUnitMonth|NSCalendarUnitWeekday;

NSDateComponents *comps = [calendercomponents:unitfromDate:date];

NSLog(@"%zd--%zd--%zd",era,comps.month,comps.weekday);

5、日期比较

//第一种比较方式

NSString*created =@"2016-08-30 09:10:05";

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";

NSDate*createdDate = [formatterdateFromString:created];

//当前时间

NSDate*now = [NSDatedate];

//比较大小

/*

NSOrderedAscending = -1L,升序,越往右越大

NSOrderedSame,相等

NSOrderedDescending,降序,越往右越小

*/

NSComparisonResultresult = [nowcompare:createdDate];

if(result ==NSOrderedAscending) {

NSLog(@"createdData > now");

}elseif(result ==NSOrderedDescending){

NSLog(@"createdData < now");

}else{

NSLog(@"createdData = now");

}

//第二种比较方式(事件戳日期的比较)

//获取时间

NSString*created =@"2016-08-30 09:10:05";

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";

NSDate*createdDate = [formatterdateFromString:created];

//当前时间

NSDate*now = [NSDatedate];

//两个时间相差秒数

NSTimeIntervalinterval = [nowtimeIntervalSinceDate:createdDate];

NSLog(@"%f",interval);

//第三种比较方式,获得两个日期相差的年、月、日、时、分、秒

//获取时间

NSString*created =@"2016-08-30 09:10:05";

NSDateFormatter*formatter = [[NSDateFormatteralloc]init];

formatter.dateFormat=@"yyyy-MM-dd HH:mm:ss";

NSDate*createdDate = [formatterdateFromString:created];

//当前时间

NSDate*now = [NSDatedate];

//获取

NSCalendar*calendar =nil;

if([UIDevicecurrentDevice].systemVersion.doubleValue>8.0) {

calendar = [NSCalendarcalendarWithIdentifier:NSCalendarIdentifierGregorian];

}else{

calendar = [NSCalendarcurrentCalendar];

}

//获得日期之间的间隔

NSCalendarUnitunit =NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;

NSDateComponents*comps = [calendarcomponents:unitfromDate:createdDatetoDate:nowoptions:0];

NSLog(@"%@",comps);

//判断这个日期是不是今天的日期,iOS8以后用

//[calendar isDateInToday:[formatter dateFromString:created]];

你可能感兴趣的:(ios日期处理)