NSDate的常用方法



 初始化

// 创建出来一个时间 获取系统当前时间
NSDate * date = [ NSDate date ];
NSDate * date1 = [ NSDate new ]; // 等价于上面的写法
NSDate * date2 = [[ NSDate alloc ] 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 = [ NSCalendar currentCalendar ];
   
  // 获取当前时间
  NSDate * currentDate = [ NSDate date];
// 使用 calendar 获取年、月、日 (这一个像是在其内提取数据)  
//并且选取的参数是多选(位移枚举)
NSDateComponents * components = [calendar  components :
NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate :currentDate];

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




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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值