NSDate的常用方法



 初始化

//创建出来一个时间获取系统当前时间
NSDate* date = [NSDatedate];
NSDate* date1 = [NSDatenew];//等价于上面的写法
NSDate* date2 = [[NSDatealloc]init];//也等价于上面的写法 

 变化 

//用一个时间加上多少秒产生另一个时间
NSDate * tomorrow = [date dateByAddingTimeInterval:24*60*60];
 
//用一个时间加上一个负数,相当于减去多小秒产生一个之前的时间
NSDate * yesterday = [date dateByAddingTimeInterval:-24*60*60];


 比较
 
//可以用compare来比较时间的先后,
//NSComparisonResult创建一个接收比较结果的对象
NSComparisonResult  rst = [tomorrow compare:yesterday];

//返回较早的时间(之前的时间会较早)
NSDate * dateEarly = [tomorrow earlierDate:yesterday];

//返回较晚的时间(之后的时间较晚)
NSDate * dateLater = [tomorrow laterDate:yesterday];


#过去和未来的时间

 //遥远的未来的时间
NSDate * date10 = [NSDate distantFuture];
     
//遥远的过去的时间
NSDate * date11 = [NSDate distantPast];


 时间差

//返回一个时间差两个时间相距多长时间以秒为单位
//NSTimeInterval定义的其实是一个double类型的数据,这是这类型的数据系统会认为它是时间
 NSTimeInterval time = [yesterday timeIntervalSinceDate:tomorrow];


 格式化
 
//创建一个日期转化格式的对象
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
//自定义日期转换格式(formatter对象的具体格式)
//yyyy表示年,MM表示月dd表示天,HH表示24小时制得时(hh表示12小时制)mm表示分,ss表示秒。
//(大小写是不可以变得)
[formatter setDateFormat:@"yyyy-MM-dd,HH:mm:ss”]; 


//把系统当前时间转换为字符串
NSString * strDate = [formatter stringFromDate:date];//$ $ $ $)格式换接收(时间)字符
       
//把字符串的时间转化为NSDate时间
NSDate * date12 = [formatter dateFromString:strDate];//也是要使用转化的格式的


 日历和时间
  
//日期的分开输入      
NSCalendar * calendar = [NSCalendar currentCalendar];//创建一个日历用来接收时间
      
//输入时区
NSTimeZone * timezone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

//创建时间组件
NSDateComponents * components = [[NSDateComponents alloc]init];
[components setTimeZone:timezone];
[components setYear:2008];
[components setMonth:8];
[components setDay:8];
[components setHour:16];
[components setMinute:8];
[components setSecond:8];
NSDate * beijingOlmpicGamesTime = [calendar dateFromComponents:components];




 同样的这一个日历也可以反着来

//初始化日历类:可以通过calendar来从一个NSDate类型的数据中获取年、月、日
NSCalendar* calendar = [NSCalendarcurrentCalendar];
   
 //获取当前时间
 NSDate * currentDate = [NSDatedate];
//使用calendar获取年、月、日 (这一个像是在其内提取数据) 
//并且选取的参数是多选(位移枚举)
NSDateComponents* components = [calendar components:
NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDayfromDate:currentDate];

NSIntegeryear = components.year;
NSIntegermonth = components.month;
NSInteger day = components.day;




 时区
 
这样可以获得所有的时区 
NSArray * arr = [NSTimeZone knownTimeZoneNames];

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值