zoukankan      html  css  js  c++  java
  • iOS----时间日期处理

    时间日期处理

    1.NSDateFormatter

    • 日期格式化

    ①可以把NSString 类型转为 NSDate类型

    举例 把 "2015-08-23 19:46:14" 转为NSDate类型

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串)
    // y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSDate *createDate = [formatter dateFromString:@"2015-08-23 19:46:14"];
    

    ②把 NSDate 类型转为 NSString 类型

    举例把当前时间 转为NSString型

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串)
    // y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    
    // 当前时间
    NSDate *date = [NSDate date];
    
    NSString *string = [formatter stringFromDate:date];
    

    2.NSDate

        // 获得当前时间
        NSDate *nowDate = [NSDate date];
    
        //从beforeDate -> nowDate的时间间隔,秒
        NSTimeInterval interval = [nowDate timeIntervalSinceDate:beforeDate];
    
        // 时间戳
        // "time": "6456546455435",到1970年的时间
        [NSDate dateWithTimeIntervalSince1970:6456546455435 / 1000.0];
    

    3.NSCalendar

    日期组件

     // 日期组件 (年、月、日、小时、分、秒)
        /** NSCalendarUnit 枚举量
         *  NSCalendarUnitEra
            NSCalendarUnitYear
            NSCalendarUnitMonth
            NSCalendarUnitDay
            NSCalendarUnitHour
            NSCalendarUnitMinute
            NSCalendarUnitSecond
            NSCalendarUnitWeekday
            NSCalendarUnitWeekdayOrdinal
            NSCalendarUnitQuarter
            NSCalendarUnitWeekOfMonth
         */
    

    ①获得单个元素

    - (NSInteger)component:(NSCalendarUnit)unit fromDate:(NSDate *)date;
    
    // 年
    NSInteger year = [calendar component:NSCalendarUnitYear fromDate:createDate];
    // 月
    NSInteger month = [calendar component:NSCalendarUnitMonth fromDate:createDate];
    // 日
    NSInteger day = [calendar component:NSCalendarUnitDay fromDate:createDate];
    NSLog(@"%zd %zd %zd", year, month, day);
    

    ②获得多个元素

       // 创建日期类--获取当前时分秒
        NSCalendar *calendar = [NSCalendar currentCalendar];
    
        NSDateComponents *cmp = [calendar components:NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitHour fromDate:[NSDate date]];
        //获得当前秒
        NSInteger sec = cmp.second;
        //获得当前分钟
        NSInteger min = cmp.minute;
        //获得当前小时
        NSInteger hour = cmp.hour;
    

    ③获得2个日期(NSDate)之间的时间间隔

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    NSDateComponents *cmps = [calendar components:unit fromDate:beforeDate toDate:nowDate options:0];
    
  • 相关阅读:
    树链剖分 (模板) 洛谷3384
    ST表 (模板) 洛谷3865
    IOI 2005 River (洛谷 3354)
    IOI 2005 River (洛谷 3354)
    poj1094 Sorting It All Out
    poj1094 Sorting It All Out
    spfa(模板)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    洛谷1850(NOIp2016) 换教室——期望dp
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4757863.html
Copyright © 2011-2022 走看看