Object-c 总结之NSDate
来源:互联网 发布:linux守护线程 编辑:程序博客网 时间:2024/06/06 10:50
NSDate的常见用法总结
// 当前时间创建NSDate
NSDate *myDate = [NSDate date];
NSLog(@"myDate = %@",myDate);
//从现在开始的24小时
NSTimeInterval secondsPerDay = 24*60*60;
NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay];
NSLog(@"myDate = %@",tomorrow);
//根据已有日期创建日期
NSTimeInterval secondsPerDay1 = 24*60*60;
NSDate *now = [NSDate date];
NSDate *yesterDay = [now addTimeInterval:-secondsPerDay1];(ios4之后被弃用了,在最后对新的方法作了补充)
NSLog(@"yesterDay = %@",yesterDay);
//比较日期
BOOL sameDate = [now isEqualToDate:yesterDay];
NSLog(@"sameDate = %lu",sameDate);
//获取较早的日期
NSDate *earlierDate = [yesterDay earlierDate:now];
NSLog(@"earlierDate = %@",earlierDate);
//较晚的日期
NSDate *laterDate = [yesterDay laterDate:now];
NSLog(@"laterDate = %@",laterDate);
//两个日期之间相隔多少秒
NSTimeInterval secondsBetweenDates= [yesterDay timeIntervalSinceDate:now];
NSLog(@"secondsBetweenDates= %lf",secondsBetweenDates);
//通过NSCALENDAR类来创建日期
NSDateComponents *comp = [[NSDateComponentsalloc]init];
[comp setMonth:06];
[comp setDay:01];
[comp setYear:2001];
NSCalendar *myCal = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *myDate1 = [myCal dateFromComponents:comp];
NSLog(@"myDate1 = %@",myDate1);
//从已有日期获取日期
unsigned units = NSMonthCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit;
NSDateComponents *comp1 = [myCal components:units fromDate:now];
NSInteger month = [comp1 month];
NSInteger year = [comp1 year];
NSInteger day = [comp1 day];
//NSDateFormatter实现日期的输出
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateStyle:NSDateFormatterFullStyle];//直接输出的话是机器码
//或者是手动设置样式[formatter setDateFormat:@"yyyy-mm-dd"];
NSString *string = [formatter stringFromDate:now];
NSLog(@"string = %@",string);
NSLog(@"formater = %@",formatter);
某一天的前一天或后一天的方法:
这里要用到的是NSCalendar,首先也是设置属性,和上面一样;用到最主要的方法是[comps setHour:+24];+24表示获取下一天,-24表示获取前一天;还有[comps setMinute:0]和[comps setSecond:0]都要;
最后将calendar转换成NSdate;方法如下:
NSDate *nowDate = [calendar dateByAddingComponents:comps toDate:showDate options:0]; //showDate表示某天的date,nowDate表示showDate的前一天或下一天的date
代码如下:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps;
comps = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[[NSDate alloc] init]];
[comps setHour:+24]; //+24表示获取下一天的date,-24表示获取前一天的date;
[comps setMinute:0];
[comps setSecond:0];
NSDate *nowDate = [calendar dateByAddingComponents:comps toDate:showDate options:0]; //showDate表示某天的date,nowDate表示showDate的前一天或下一天的date
- Object-c 总结之NSDate
- Object-c 总结之NSDate
- object-c之NSdate浅析
- IOS Object-c NSDate总结日期操作
- IOS Object-c NSDate总结日期操作
- IOS Object-c NSDate总结日期操作
- IOS Object-c NSDate总结日期操作
- Object-C中的NSDate
- object c NSDate
- Object-c学习之路十一(NSDate和反射)
- Object-C 中的日期(NSDate)
- object -C 笔记之总结
- Object-c 总结之NSArray
- Object-c 总结之NSString
- Object-c 总结之NSArray
- Object-c 总结之NSDictionary
- Object-c 总结之NSDictionary
- Object-c 总结之NSArray
- java 回调与枚举
- 不必遗憾,若是美好,叫做精彩,若是糟糕,叫做经历
- 关于SOCKET
- 动态规划题目(一)——换零钱
- 关于struct在内存中的存储结构及妙用
- Object-c 总结之NSDate
- IOS CALayer详解
- 作业
- Git分支开发图解
- eclipse最有用快捷键整理
- [LeetCode] Length of Last Word
- BZOJ 1030 JSOI 2007 文本生成器 AC自动机+DP
- 大规模分布式存储系统-读书笔记-第一章
- android Scoket 网络对战DEMO