OC之NSDate

//1.创建日期对象
        //创建的NSDate对象,获得的永远是0时区的时间. 东八区, 加8个小时.
        NSDate *date1 = [NSDate date];
        NSLog(@"%@", date1);
        //创建明天此时的日期,后一天
        //时间间隔,是以秒为单位.
        NSDate *tomorrowDate = [NSDate dateWithTimeIntervalSinceNow:24 * 60 * 60];
        NSLog(@"%@", tomorrowDate);
        //创建昨天此时的日期,前一天
        NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-24 * 60 * 60];
        NSLog(@"%@", yesterdayDate);
        
        //获取两个日期的时间间隔(tomorrowDate, yesterdayDate)
        NSTimeInterval intervalTime = [tomorrowDate timeIntervalSinceDate:yesterdayDate];
        NSLog(@"%g", intervalTime / 60 / 60 / 24);
        
        //
        NSTimeInterval intervalTime1 = [yesterdayDate timeIntervalSinceDate:tomorrowDate];
        NSLog(@"%g", intervalTime1 / 60 / 60 /24);
        
        //比较日期的早晚.
        //(tomorrowDate, yesterdayDate
        //(1)获取两个日期中较早的日期
        NSDate *ealerDate = [tomorrowDate earlierDate:yesterdayDate];
        NSLog(@"%@", ealerDate);
        //(2)获取两个日期中较晚的日期
        NSDate *laterDate = [tomorrowDate laterDate:yesterdayDate];
        NSLog(@"%@", laterDate);
        //(3)比较两个日期
        NSComparisonResult result = [tomorrowDate compare:yesterdayDate];
        NSLog(@"%ld", result);
        
        //计算当前时间和固定时间的差值
        NSDate *nowDate = [NSDate date]; //当前时间
        NSDate *date2 = [NSDate dateWithTimeInterval:3600 * 23 sinceDate:nowDate];
        NSTimeInterval intervalTime2 = [date2 timeIntervalSinceDate:nowDate]; //固定时间
        if (intervalTime2 < 60) {
            NSLog(@"刚刚...");
        } else if (intervalTime2 <= 3600) {
            NSLog(@"%g分钟前...", intervalTime2 / 60);
        } else if (intervalTime2 <= 3600 * 24) {
            NSLog(@"%g小时前...", intervalTime2 / 60 / 60);
        } else {
            NSLog(@"%g天前...", intervalTime2 / 3600 / 24);
        }



        //NSDateFormatter 是一个日期格式类,将日期以一个格式进行转换,(原理,转换成字符串). 另外也可将日期格式串转换为NSDate对象
        //NSDate *date = [NSDate date];
        //创建日期格式对象
        //NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        //指定日期格式
        // HH 表示24小时制, hh 表示12小时制
        // MM 表示月份, mm 表示分钟
        // dd 表示当月天数, DD 表示当天处于本年的第几天.
        // ss 表示秒数,
        // 如果年份为两个y, 则只显示年份的后两位,如果给其他个数的y,都是显示完整的年份
        // 例如MM等 如果给两位,则月份如果是一位时,前面补0.
//        [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
        
        //设置日期的格式
        [formatter setDateStyle:NSDateFormatterFullStyle];
        //设置时间的格式
        [formatter setTimeStyle:NSDateFormatterFullStyle];
        
        //将日期按照指定格式转换为日期格式串
        NSString *dateStr = [formatter stringFromDate:date];
        NSLog(@"%@", dateStr);
        
        
        //将日期格式串转换为NSDate对象
        //@"2008-08-08 20:08:08"
        //NSString *dateStr = @"2008-08-08 20:08:08";
        NSString *dateStr = @"2014年05月01日 10点23分18秒";
        //创建日期格式化对象(一定要和日期格式串中的日期格式保持一致)
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        //设置日期格式
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        //将格式字符串转化为NSDate对象
        NSDate *date = [formatter dateFromString:dateStr];
        NSLog(@"%@", date);
        
        //将日期格式串转换为NSDate对象
        //@"2008-08-08 20:08:08"
        //NSString *dateStr = @"2008-08-08 20:08:08";
        NSString *dateStr = @"2014年05月01日 10点23分18秒";
        //创建日期格式化对象(一定要和日期格式串中的日期格式保持一致)
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        //设置日期格式
        [formatter setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
        //将格式字符串转化为NSDate对象
        NSDate *date = [formatter dateFromString:dateStr];
        NSLog(@"%@", date);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值