objective-C日期相关操作
来源:互联网 发布:丽得姿黑面膜淘宝 编辑:程序博客网 时间:2024/04/30 09:34
1、获取当前日期、时间
NSDate *currentDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSString *currentDateStr = [dateFormatter stringFromDate:currentDate];
2、获取一周前的日期、时间
NSDate * date = [NSDate date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
//一周的秒数
NSTimeInterval time = 7 * 24 * 60 * 60;
//下周就把"-"去掉
NSDate *lastWeek = [date dateByAddingTimeInterval:-time];
NSString *startDate = [dateFormatter stringFromDate:lastWeek];
3、比较两个日期大小
-(NSInteger)compareDate:(NSString*)startDate withDate:(NSString*)endDate{
NSInteger comparisonResult;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [[NSDate alloc] init];
date1 = [formatter dateFromString:startDate];
date2 = [formatter dateFromString:endDate];
NSComparisonResult result = [date1 compare:date2];
NSLog(@"result==%ld",(long)result);
switch (result)
{
//date02比date01大
case NSOrderedAscending:
comparisonResult = 1;
break;
//date02比date01小
case NSOrderedDescending:
comparisonResult = -1;
break;
//date02=date01
case NSOrderedSame:
comparisonResult = 0;
break;
default:
NSLog(@"erorr dates %@, %@", date1, date2);
break;
}
return comparisonResult;
}
//与当前日期对比( 作为NSString + Extension)
-(NSInteger)compareWithCurrentDate {
if (self.length != 8) {
RFLog(@"传入的格式错误!");
return 1000;//本地自定义的错误码
}
NSInteger comparisonResult;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd"];
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [NSDate date];
date1 = [formatter dateFromString:self];
NSComparisonResult result = [date1 compare:date2];
switch (result)
{
//date2比date1大
case NSOrderedAscending:
comparisonResult = 1;
break;
//date2比date1小
case NSOrderedDescending:
comparisonResult = -1;
break;
//date2=date1
case NSOrderedSame:
comparisonResult = 0;
break;
default:
NSLog(@"erorr dates %@, %@", date1, date2);
break;
}
return comparisonResult;
}
4、比较日期差
-(NSInteger)compare:(NSDate *)startTime to:(NSDate *)endTime{
// 当前日历
NSCalendar *calendar = [NSCalendar currentCalendar];
// 需要对比的时间数据
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth
| NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
// 对比时间差
NSDateComponents *dateCom = [calendar components:unit fromDate:startTime toDate:endTime options:0];
NSString *time = [NSString stringWithFormat:@"%ld%ld%ld%ld%ld%ld",dateCom.year,dateCom.month,dateCom.day,dateCom.hour,dateCom.minute,dateCom.second];
NSLog(@"time---->%@",time);
return [time integerValue];
}
5、时间和时间戳的转换
NSDate* date1 = [NSDate date];
NSTimeInterval time1 =[date1 timeIntervalSince1970];
NSString *timeString = [NSString stringWithFormat:@"%.0f",time1];
NSLog(@"系统时间戳:%@",timeString);
//时间戳转换成时间
NSTimeInterval time2 =[timeString doubleValue];
NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:time2];
NSLog(@"date2 = %@",date2);
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy/MM/dd"];
NSString *currentTime = [formatter stringFromDate:date2];
NSLog(@"当前时间:%@",currentTime);
//时间转时间戳
NSString *timeStr = [NSString stringWithFormat:@"%.0f",[date2 timeIntervalSince1970]];
NSLog(@"时间戳:%@",timeStr);
转载
文/来宝(简书作者)
原文链接:http://www.jianshu.com/p/23f9c6a0e8f2
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
- objective-C日期相关操作
- objective-c 时间相关操作
- Objective-C相关Category
- 日期时间相关操作
- SQL 日期操作相关
- MSSQL 日期相关操作
- Domino日期操作相关
- sql 日期相关操作
- 日期的相关操作
- 日期时间相关操作
- Objective-C 文件操作
- objective-c UIImageView 操作
- objective-c UIImageView 操作
- Objective-C 文件操作
- Objective-C 目錄與檔案操作
- Objective-C JSON操作
- Objective-C字符串操作
- Objective-C NSString 操作
- shell判断2.test测试
- linux硬链接与软链接(转)
- Android中的ContentProvider
- AndroidManifest注册Activity
- Codeforces Gym 100513
- objective-C日期相关操作
- Maven学习(四)-- 生命周期和插件
- .9图片制作
- 支持多屏幕
- Codeforces Round #362 (Div. 2) B. Barnicle
- 2016微软技术大会 汇聚最前沿科技
- Android之自定义View实现随手势滑动的小圆球
- 台阶走法
- JNDI 在 J2EE 中的角色