OC中的NSDate类
来源:互联网 发布:c语言的main函数是什么 编辑:程序博客网 时间:2024/06/08 04:12
概念
NSDate是Cocoa中用于处理日期和时间的基础类,该类封装了各种处理时间和日期的API(应用程序接口)。
NSDate
//初始化
//类初始化,获取系统当前时间(GMT 格林尼治时间,与北京时间相差8个小时,北京时间=GMT+8)
NSDate *date1=[NSDate date];
//<#(NSTimeInterval)#>这是一个以秒为单位的时间戳,float类型
//这个语法表示获得一个以现在时间为参考,通过设置<#(NSTimeInterval)#>(可输入正负数,负数表示之前多少秒、正数表示之后多少秒),来得到一个之前或者之后的时间
NSDate *date2=[NSDate dateWithTimeIntervalSinceNow:-120];
//从1970年开始,到时间戳的时间
`NSDate *date3=[NSDate dateWithTimeIntervalSince1970:100];
//距离sincedate(设置的日期)<#(NSTimeInterval)#>时间戳的时间
NSDate *date4=[NSDate dateWithTimeInterval:120 sinceDate:[NSDate date]];
//通过时间追加创建nsdate
NSDate *date5=[date4 dateByAddingTimeInterval:120];
//日期比较
//两个日期的时间戳(时间差)
创建一个时间对象然后跟1970年进行比较,并输出两者时间的差值 NSTimeInterval timeIterval=[[NSDate date] timeIntervalSince1970]; NSLog(@"%f",timeIterval);创建一个时间对象然后跟系统当前时间进行比较,并输出两者时间的差值 NSTimeInterval timeItervalSinceNow=[[NSDate date] timeIntervalSinceNow]; NSLog(@"%f",timeItervalSinceNow);
//基于给到的时间,算出一个小时之前的时间
NSDate *dateNow=[NSDate date]; NSDate *dateHour=[dateNow dateByAddingTimeInterval:-3600]; NSDate *dateB=[NSDate dateWithTimeInterval:-3600 sinceDate:dateNow]; NSLog(@"%@",dateHour); NSLog(@"%@",dateB);
//判断两个时间是否相等,实例方法,通过对象调用
BOOL b=[dateNow isEqualToDate:dateHour]; if (b) { NSLog(@"dateB=dateHour"); }
//判断两个时间哪个是较早的日期
NSDate *earlierDate=[dateNow earlierDate:dateHour]; if ([dateHour isEqualToDate:earlierDate]) { NSLog(@"dateHour是较早的时间"); } else{ NSLog(@"dateNow是较早的日期"); }
//判断较晚的日期
NSDate *laterDate=[dateHour laterDate:dateNow]; if ([dateHour isEqualToDate :laterDate]) { NSLog(@"dateHour是较晚的时间"); } else{ NSLog(@"dateNow是较晚的日期"); }
//除了上面那种比较时间先后的方法,我们还可以是用compare方法,PS:compare 输出的是一个枚举
NSComparisonResult result=[dateNow compare:dateHour]; switch (result) { case NSOrderedAscending://前者比后者小 { NSLog(@"dateNow<dateHour"); break; } case NSOrderedSame://两者相同 { NSLog(@"dateNow=dateHour"); break; } case NSOrderedDescending ://前者比后者大 { NSLog(@"dateNow>dateHour"); break; } default: break; }
//通过NSTimeInterval创建一个时间很方便,但是不直观,Foundation框架为此提供了NSCalendar类,NSCalendar类由更自然的日期组成,例如日、月、年等,可以使用NSDateComponents来对具体的日、月、年等参数进行赋值。
// NSCalendar类通过NSDateComponents和 NSCalendar(currentCalendar方法)来创建一个date
NSCalendar *currentCalendar=[NSCalendar currentCalendar]; NSDateComponents *components=[[NSDateComponents alloc]init]; components.year=2016; components.month=8; components.day=12; components.hour=12; components.minute=15; components.second=30; NSDate *date8=[currentCalendar dateFromComponents:components];
//时区
// NSTimeZone
//列出所有的时区
NSArray *array=[NSTimeZone knownTimeZoneNames ];
//指定名称参数创建一个时区
NSTimeZone *timeZone=[NSTimeZone timeZoneWithName:@"Shanghai"];
//指定时区缩写 创建一个时区
NSTimeZone *timeChina=[ NSTimeZone timeZoneWithAbbreviation:@"PRC"];
//如何将日期转成字符串
NSDateFormatter *dateFormatter=[NSDateFormatter new];
//设置时区,默认时区
dateFormatter.timeZone=[NSTimeZone defaultTimeZone];
//设置时间输出格式
//[dateFormatter setDateFormat:@”yyyy-MM-dd HH:mm:ss”];
[dateFormatter setDateFormat:@"yyyy年MM月dd日HH时mm分ss秒"]; NSString *str=[dateFormatter stringFromDate:[NSDate date]];
//将字符串转成日期
NSString *str2=@"1970-1-1 10:00:00"; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date10=[dateFormatter dateFromString:str2]; NSLog(@"%@",date10);
- OC中的NSDate类
- OC中的NSDate
- OC中的时间NSDate
- OC中的NSDate
- OC 常用类 --- NSDate
- OC - 时间日期类NSDate
- OC中的NSDate常用代码范例
- OC-NSdate
- OC-NSDate
- oc NSDate
- OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
- OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
- OC中的关于日期处理方法应用NSDate、NSDateFormatter
- OC学习之NSdate
- OC之【NSDate使用】
- OC NSDate 总结
- OC之NSDate
- Foundation -- OC集合 --NSDate
- 二分图常见模型
- hdu5444 (2015 ACM/ICPC Asia Regional Changchun Online)
- UIScrollView 原理详解
- 八数码问题多种解法比较(poj1077宽搜,双向宽搜,A*,IDA*+扩展)(持续更新)
- new/delete与malloc/free的区别
- OC中的NSDate类
- Oracle 在多线程下执行select会崩溃或闪退的问题。
- 浅谈系统编程
- docker+jenkins+git持续部署实践
- spark流数据处理
- Eqs(hash初步)
- Asp.net 简单分页
- Java File
- 【播放器】关于 sewisePlayer HLS视频播放器的二次开发(一)