Objective-C 获取NSDate对象的年月日时分秒 && NSCalender的使用

/*

现在网上大多的获取NSDate年月日时分秒的方法,都在mac os 10.10被苹果公司标记成不建议使用了.

查了好久,终于找到了一个苹果公司推荐使用方法, 以下内容分享给大家

*/


        /*
         当前时间对象[dateNow]
         */
        NSDate *dateNow = [NSDate date];
        
        /*
         日历类[calendar]
         注意: 一定要用[NSCalendar currentCalendar]初始化, 
              如果用[[NSCalendar alloc] init]初始化, 获取的时间会是随机式.
         */
        NSCalendar *calendar = [NSCalendar currentCalendar];
        
        
        /*
         变量
         */
        NSInteger year;         //年
        NSInteger month;        //月
        NSInteger day;          //日
        NSInteger hour;         //时
        NSInteger minute;       //分
        NSInteger second;       //秒
        NSInteger nanosecond;   //10^-9秒
        
        
        /*
         使用[calendar]对象从[dateNow]中获取 [hour] [minute] [second] [nanosecond]
         注意: '&'是取地址符, 把变量的"地址"传过去,
              函数会把相应的值写入这个"地址", 我们的变量里面就存入相应的值了.
         */
        [calendar getHour:&hour minute:&minute second:&second nanosecond:&nanosecond fromDate:dateNow];
        
        
        /*
         使用[calendar]对象从[dateNow]中获取[year],[month],[day].
         注意: [Era]是公元的意思, 现在的日期都会为1. 
               由于没有文档介绍这个值的含义, 使用的需求度也不高, 暂时先不研究这个.
         */
        [calendar getEra:nil year:&year month:&month day:&day fromDate:dateNow];

        
        /*
         打印获取的值 
         注意: '%d'是32位整数.
              '%ld'是64位整数.
              '%2ld'是64位整数, 如果不足2位则在左边补充空格.
              '%02ld'是64位整数, 如果不足2位则在左边补充'0'.
         输出结果: 2015-03-26 13:44:34.582 MyCake[3020:106505] 2015-03-26 13:44:34.582
         
         结果说明: 对比一下, 系统输出的时间, 和你的时间是不是一样的.
                  而且毫米数字都一样, 说明这种写法效率非常高.
         */
        NSLog(@"%04ld-%02ld-%02ld %02ld:%02ld:%02ld.%03ld", year, month, day, hour, minute, second, nanosecond/1000000);


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值