iOS中NSDate常用转换操作整合
来源:互联网 发布:mac 流程图软件 免费 编辑:程序博客网 时间:2024/05/31 18:47
//当前时间格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss+ (NSString *)getCurrentDataWithDateFormate:(NSString *)formate{ NSDate *now = [NSDate date]; return [self dateFormattingWithDate:now toFormate:formate];}//任意NSDate格式化+ (NSString *)dateFormattingWithDate:(NSDate *)date toFormate:(NSString *)formate{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:formate]; return [formatter stringFromDate:date];}//获取当天0点时间+ (NSDate *)returnToDay0Clock{ NSDate *now = [NSDate date]; NSCalendar *calender = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; NSDateComponents *dateComponent = [calender components:unitFlags fromDate:now]; int hour = (int)[dateComponent hour]; int minute = (int)[dateComponent minute]; int second = (int)[dateComponent second]; //当前时分秒:hour,minute,second //返回当前时间(hour * 3600 + minute * 60 + second)之前的时间,即为今天凌晨0点 NSDate *nowDay = [NSDate dateWithTimeIntervalSinceNow: - (hour * 3600 + minute * 60 + second)]; long long inter = [nowDay timeIntervalSince1970] * 1000; NSDate *newDate = [NSDate dateWithTimeIntervalSince1970:inter / 1000]; return newDate;}//获取当天24点时间+ (NSDate *)returnToDay24Clock{ NSDate *now = [NSDate date]; NSCalendar *calender = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; NSDateComponents *dateComponent = [calender components:unitFlags fromDate:now]; int hour = (int)[dateComponent hour]; int minute = (int)[dateComponent minute]; int second = (int)[dateComponent second]; //一天是60分钟 * 60秒 * 24小时 = 86400秒 NSDate *nextDay = [NSDate dateWithTimeIntervalSinceNow: - (hour * 3600 + minute * 60 + second) + 86400]; return nextDay;}//获取当前秒数+ (long long)getCurrentDateSecond{ return [[NSDate date] timeIntervalSince1970];}//NSDate转秒+ (long long)dateTosecond:(NSDate *)date{ return [date timeIntervalSince1970];}//秒转NSDate+ (NSDate *)secondToDate:(long long)second{ return [NSDate dateWithTimeIntervalSince1970:second];}//是否是12小时制; YES:12小时制 / NO:24小时制+ (BOOL)is12HourSystem{ NSString *formatStringForHour = [NSDateFormatter dateFormatFromTemplate:@"j" options:0 locale:[NSLocale autoupdatingCurrentLocale]]; NSRange contains = [formatStringForHour rangeOfString:@"a"]; BOOL is12HourSystem = contains.location != NSNotFound; return is12HourSystem;}//朋友圈/聊天 时间显示样式+ (NSString *)dateDisplayResult:(long long)secondCount{ NSDate *date = [self secondToDate:secondCount]; NSCalendar *calender = [NSCalendar currentCalendar]; //判断是否是今天 if ([calender isDateInToday:date]) { long long dateSecondCount = [[NSDate date] timeIntervalSinceDate:date]; if (dateSecondCount < 60) { return @"刚刚"; } if (dateSecondCount < (60 * 60)) { return [NSString stringWithFormat:@"%d分钟前",(int)(dateSecondCount / 60)]; } return [NSString stringWithFormat:@"%d小时前",(int)(dateSecondCount / (60 * 60))]; } //判断是否是昨天 NSString *formatterString = @" HH:mm"; if ([calender isDateInYesterday:date]) { formatterString = [@"昨天" stringByAppendingString:formatterString]; } else { //判断是否是一年内 formatterString = [@"MM-dd" stringByAppendingString:formatterString]; //判断是否值一年之前 NSDateComponents *component = [calender components:NSCalendarUnitYear fromDate:date toDate:[NSDate date] options:NSCalendarWrapComponents]; if (component.year >= 1) { formatterString = [@"YYYY-" stringByAppendingString:formatterString]; } } NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:formatterString]; formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en"]; return [formatter stringFromDate:date];}//比较两个NsDate对象的时间差+ (CompareResult *)compareDateDifferenceDate1:(NSDate *)date1 date2:(NSDate *)date2{ CompareResult *result = [[CompareResult alloc] init]; result.value = (fabs([date1 timeIntervalSinceDate:date2])); result.trend = [date1 compare:date2]; return result;}
工程代码下载地址(更多常用操作整合)
0 0
- iOS中NSDate常用转换操作整合
- iOS中时间/日期处理NSDate的常用接口操作
- iOS中NSFileManager文件常用操作整合
- iOS 日期(NSDate)的常用操作总结
- IOS中NSDate与NSString的转换
- iOS中NSDate和NSString相互转换
- NSDate常用操作
- NSDate常用操作
- ios 操作日期NSDate
- ios 时间操作NSDate
- ios 操作日期NSDate
- iOS开发中时间NSDate几种格式的转换
- ios NSDate NSString相互转换
- iOS NSString和NSDate转换
- iOS NSDate 转换成星期
- iOS NSString和NSDate转换
- IOS-常用的NSDate方法
- IOS NSDate日期操作总结
- UVA 1349 Optimal Bus Route Design(最小权完美匹配)
- M--二分查找(递归)
- 百度地图 定位
- 1052. 卖个萌 (20)
- 第一篇博客
- iOS中NSDate常用转换操作整合
- 蓝桥杯之趣味算式
- Android插件化系列第(二)篇---动态加载技术之应用换肤
- linux 下mysql数据的导入、导出
- Spring 对象XML映射
- windows 10 high dpi problem fix
- JZOJ 3506. 【NOIP2013模拟11.4A组】善良的精灵
- leetcode--112. Path Sum
- CSU-1268