ios时间相关的工具NSDate
来源:互联网 发布:linux清除arp表 编辑:程序博客网 时间:2024/06/16 04:12
/获取年月日对象+(NSDateComponents *)getDateComponents:(NSDate *)date { NSCalendar *calendar = [NSCalendar currentCalendar];// [calendar setFirstWeekday:2]; //设置每周的开始是星期一// [calendar setMinimumDaysInFirstWeek:7]; //设置一周至少需要几天 return [calendar components: NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSWeekOfYearCalendarUnit| NSQuarterCalendarUnit fromDate:date];}//获得某年的周数+(NSInteger)getWeek_AccordingToYear:(NSInteger)year { NSDateComponents *comps = [DataTimeTool getDateComponents:[DataTimeTool dateFromString:[NSString stringWithFormat:@"%ld-12-31",year] DateFormat:@"yyyy-MM-dd"]]; NSInteger week = [comps weekOfYear]; if (week == 1) { return 52; }else { return week; }}/** * 获取某年某周的范围日期 * * @param year 年份 * @param weekofYear year里某个周 * * @return 时间范围字符串 */+(NSString*)getWeekRangeDate_Year:(NSInteger)year WeakOfYear:(NSInteger)weekofYear{ NSString *weekDate = @""; NSString *timeAxis = [NSString stringWithFormat:@"%ld-06-01 12:00:00",(long)year]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date = [dateFormatter dateFromString:timeAxis]; NSCalendar *calendar = [NSCalendar currentCalendar]; /**这两个参数的设置影响着周次的个数和划分*****************/ [calendar setFirstWeekday:2]; //设置每周的开始是星期一// [calendar setMinimumDaysInFirstWeek:7]; //设置一周至少需要几天 NSDateComponents *comps = [calendar components:(NSCalendarUnitWeekOfYear | NSCalendarUnitWeekday | NSCalendarUnitWeekdayOrdinal | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:date]; //时间轴是当前年的第几周 NSInteger todayIsWeek = [comps weekOfYear]; if ([DataTimeTool getWeek_AccordingToYear:year] == 53) { todayIsWeek += 1; } //获取时间轴是星期几 1(星期天) 2(星期一) 3(星期二) 4(星期三) 5(星期四) 6(星期五) 7(星期六) NSInteger todayIsWeekDay = [comps weekday]; // 计算当前日期和这周的星期一和星期天差的天数 //firstDiff 星期一相差天数 、 lastDiff 星期天相差天数 long firstDiff,lastDiff; if (todayIsWeekDay == 1) { firstDiff = -6; lastDiff = 0; }else { firstDiff = [calendar firstWeekday] - todayIsWeekDay; lastDiff = 8 - todayIsWeekDay; } NSDate *firstDayOfWeek= [NSDate dateWithTimeInterval:24*60*60*firstDiff sinceDate:date]; NSDate *lastDayOfWeek= [NSDate dateWithTimeInterval:24*60*60*lastDiff sinceDate:date]; long weekdifference = weekofYear - todayIsWeek; firstDayOfWeek= [NSDate dateWithTimeInterval:24*60*60*7*weekdifference sinceDate:firstDayOfWeek]; lastDayOfWeek= [NSDate dateWithTimeInterval:24*60*60*7*weekdifference sinceDate:lastDayOfWeek]; weekDate = [NSString stringWithFormat:@"第%ld周(%@-%@)",weekofYear,[DataTimeTool stringFromDate:firstDayOfWeek DateFormat:@"yyyy年M月d号"],[DataTimeTool stringFromDate:lastDayOfWeek DateFormat:@"yyyy年M月d号"]]; return weekDate;}/**************************当前时间********************************/+(NSDateComponents *)getCurrentDateComponents { return [DataTimeTool getDateComponents:[NSDate date]];}+(NSInteger)getCurrentWeek { NSInteger week = [[DataTimeTool stringFromDate:[NSDate date] DateFormat:@"w"] intValue]; return week;}+(NSInteger)getCurrentYear{ NSInteger year = [[DataTimeTool stringFromDate:[NSDate date] DateFormat:@"y"] intValue]; return year;}+(NSInteger)getCurrentQuarter{ NSInteger quarter = [[DataTimeTool stringFromDate:[NSDate date] DateFormat:@"q"] intValue]; return quarter;}+(NSInteger)getCurrentMonth{ NSInteger month = [[DataTimeTool stringFromDate:[NSDate date] DateFormat:@"M"] intValue]; return month;}+(NSInteger)getCurrentDay{ NSInteger day = [[DataTimeTool stringFromDate:[NSDate date] DateFormat:@"d"] intValue]; return day;}//NSString转NSDate+(NSDate *)dateFromString:(NSString *)dateString DateFormat:(NSString *)DateFormat{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:DateFormat]; NSDate *destDate= [dateFormatter dateFromString:dateString]; return destDate;}//NSDate转NSString+(NSString *)stringFromDate:(NSDate *)date DateFormat:(NSString *)DateFormat{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:DateFormat]; NSString *destDateString = [dateFormatter stringFromDate:date]; return destDateString;}//时间追加+(NSString *)dateByAddingTimeInterval:(NSTimeInterval)TimeInterval DataTime:(NSString *)dateStr DateFormat:(NSString *)DateFormat{ NSString *str = nil; NSDate *date = [self dateFromString:dateStr DateFormat:DateFormat]; NSDate * newDate = [date dateByAddingTimeInterval:TimeInterval]; str = [self stringFromDate:newDate DateFormat:DateFormat]; return str;}//日期字符串格式化+(NSString *)getDataTime:(NSString *)dateStr DateFormat:(NSString *)DateFormat { return [self getDataTime:dateStr DateFormat:DateFormat oldDateFormat:nil];}+(NSString *)getDataTime:(NSString *)dateStr DateFormat:(NSString *)DateFormat oldDateFormat:(NSString *)oldDateFormat{ if (!dateStr || [dateStr isEqualToString:@"—"]) { return @"—"; } if ([dateStr isEqualToString:@"0"]) { return @"0"; } if ([dateStr rangeOfString:@"+"].location != NSNotFound) { NSArray *strarray = [dateStr componentsSeparatedByString:@"+"]; dateStr = strarray[0]; } if ([dateStr rangeOfString:@"."].location != NSNotFound) { NSArray *strarray = [dateStr componentsSeparatedByString:@"."]; dateStr = strarray[0]; } if ([dateStr rangeOfString:@"T"].location != NSNotFound) { dateStr = [dateStr stringByReplacingOccurrencesOfString:@"T" withString:@" "]; } NSDateFormatter *newDateFormatter = [[NSDateFormatter alloc]init]; [newDateFormatter setDateFormat:DateFormat]; NSDateFormatter *oldDateFormatter = [[NSDateFormatter alloc] init]; if (oldDateFormat) { [oldDateFormatter setDateFormat:oldDateFormat]; }else { [oldDateFormatter setDateFormat:[self getFormat:dateStr]]; } NSDate *date = [oldDateFormatter dateFromString:dateStr]; return [newDateFormatter stringFromDate:date];}+(int)getNumberOfCharactersInString:(NSString *)str c:(char)c { int count = 0; if ([str rangeOfString:[NSString stringWithFormat:@"%c",c]].location != NSNotFound){ for (int i=0;i<str.length;i++){ if ([str characterAtIndex:i] == c){ count++; } } } return count;}+(NSString *)getFormat:(NSString *)dateString { NSString *str = [NSString new]; int size = [self getNumberOfCharactersInString:dateString c:'-']; if (size == 0){ str = [str stringByAppendingString:@"yyyy"]; }else if (size == 1){ str = [str stringByAppendingString:@"yyyy-MM"]; }else if (size == 2){ str = [str stringByAppendingString:@"yyyy-MM-dd"]; } size = [self getNumberOfCharactersInString:dateString c:':']; if (size == 0 && [dateString rangeOfString:@" "].location != NSNotFound){ str = [str stringByAppendingString:@" HH"]; }else if (size == 1){ str = [str stringByAppendingString:@" HH:mm"]; }else if (size == 2){ str = [str stringByAppendingString:@" HH:mm:ss"]; } return str;}/** * json日期转iOS时间 * * @param string /Date() * * @return */+(NSString *)interceptTimeStampFromStr:(NSString *)string DateFormat:(NSString *)DateFormat{ if (!string || [string length] == 0 ) // 传入时间戳为空 返回 { return @"—"; } NSMutableString * mutableStr = [NSMutableString stringWithString:string]; NSString * timeStampString = [NSString string]; // 遍历取出括号内的时间戳 for (int i = 0; i < string.length; i ++) { NSRange startRang = [mutableStr rangeOfString:@"("]; NSRange endRang = [mutableStr rangeOfString:@")"]; if (startRang.location != NSNotFound) { // 左边括号位置 NSInteger leftLocation = startRang.location; // 右边括号距离左边括号的长度 NSInteger rightLocation = endRang.location - startRang.location; // 截取括号时间戳内容 timeStampString = [mutableStr substringWithRange:NSMakeRange(leftLocation + 1,rightLocation - 1)]; } } // 把时间戳转化成时间 NSTimeInterval interval=[timeStampString doubleValue] / 1000.0; NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval]; NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init]; [objDateformat setDateFormat:DateFormat];//年月日时分秒 NSString * timeStr = [NSString stringWithFormat:@"%@",[objDateformat stringFromDate: date]]; return timeStr;}
阅读全文
0 0
- ios时间相关的工具NSDate
- NSDate 使用 ios时间的秒数
- iOS 关于时间的处理(NSDate)
- iOS NSDate比较两个时间的大小
- iOS NSDate等时间类的使用
- iOS时间相关类:NSDate, NSCalendar, NSDateComponents, NSDateFormatter
- iOS NSDate相关
- iOS NSDate 时间判断
- iOS NSDate 时间戳
- ios 时间操作NSDate
- iOS NSDate时间换算
- iOS NSDate 时间计算
- NSDate相关处理,获取当前时间戳,获取本地时间,获取星期 iOS新手笔记
- iOS开发-时间设置NSDate
- iOS开发-时间日期NSDate
- ios 时区,时间格式NSDate
- ios开发--NSDate与NSDateFormatter的相关用法
- iOS开发--NSDate与NSDateFormatter的相关用法【转】
- 第一篇文章
- 用grunt搭建自动化的web前端开发环境(四)csslint配置参数 【转载自博客园superChicken】
- 关于js模拟面向对象借口中this指向的问题
- 基于webshell提权
- groovy运算符重写
- ios时间相关的工具NSDate
- CSS3动画——五个圆球的动画及音乐播放器和Loading图标
- js判断字符串是否包含某字符串
- 相机之针孔模型
- easyui获取单元格值的方法
- 打电话/发短信
- delphi、c#数据类型比较
- C程序设计基础——求n的阶层
- 跨语言序列化-protobuf/thrift/avro性能测试