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];
    
  • 相关阅读:
    Java实现 LeetCode 32 最长有效括号
    Java实现 LeetCode 31下一个排列
    Java实现 LeetCode 31下一个排列
    Java实现 LeetCode 31下一个排列
    Java实现 蓝桥杯 素因子去重
    Java实现 蓝桥杯 素因子去重
    Java实现 蓝桥杯 素因子去重
    Java实现 LeetCode 30 串联所有单词的子串
    Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
    MFC不使用对话框资源模版创建对话框
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4757863.html
Copyright © 2011-2022 走看看