目录:
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]];