objective-C日期相关操作
2016-10-22 14:19
417 查看
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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
相关文章推荐
- java中关于日期 Date 的相关操作
- java 日期的格式化、解析、数据库相关操作、获取系统时间、String与Date的转换
- c++日期和时间相关操作-<time.h>(ctime)
- SQL 日期操作相关
- objective-c 时间相关操作
- 日期时间相关操作
- Java -- 键盘输入 Scanner, BufferedReader。 系统相关System,Runtime。随机数 Randrom。日期操作Calendar
- Javascript 日期时间相关操作
- 与日期相关的操作之Timestamp
- 暂时用到日期的相关操作
- !JAVA学习提高之---- JAVA日期格式化及相关操作
- 常见问题及解决办法 整理之8-2(日期的相关操作)
- 常见问题及解决办法 整理之8-1(日期的相关操作)
- Qt相关mysql操作及时间日期(一)
- VBS的字符串及日期操作相关函数
- C#中一些日期的相关操作
- Oracle 日期/时间的相关操作
- 常见问题及解决办法 整理之8-4(日期的相关操作)
- oracle 存储过程 日期 变量 的相关操作
- Java -- 键盘输入 Scanner, BufferedReader。 系统相关System,Runtime。随机数 Randrom。日期操作Calendar