zoukankan      html  css  js  c++  java
  • NSDate 格式化 及 互转

    /*
     NSDateFormatter的作用
     1.NSString -> NSDate
     2.NSDate -> NSString
     */
    void fmt_date_to_string();
    void fmt_string_to_date();
    void fmt_string_to_date2();
    void fmt_timestamp_to_date3();
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            // 2015-10-01 14:38:40
            NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
            fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
            NSDate *createdAtDate = [fmt dateFromString:@"2015-9-15 23:59:59"];
            
            NSCalendar *calendar = [NSCalendar currentCalendar];
            NSLog(@"%d", [calendar isDateInTomorrow:createdAtDate]);
        }
        return 0;
    }
    
    void calendar_interval_between_date()
    {
        // 获得系统当前时间
        NSDate *nowDate = [NSDate date];
        
        // 服务器返回的时间字符串
        NSString *createdAtString = @"2014-02-20 10:49:54";
        // 创建一个日期格式化对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        // 设置日期格式
        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
        // NSString -> NSDate
        NSDate *createdAtDate = [fmt dateFromString:createdAtString];
        
        // 计算createdAtDate和nowDate的时间间隔
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
        NSDateComponents *cmps = [calendar components:unit fromDate:createdAtDate toDate:nowDate options:0];
        NSLog(@"%@", cmps);
    }
    
    /**
     *  获得某个NSDate对象的所有日期元素 : 年月日时分秒
     */
    void get_components_of_date()
    {
        // 获得系统当前时间
        NSDate *nowDate = [NSDate date];
        
        // 日历对象
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
        NSDateComponents *cmps = [calendar components:unit fromDate:nowDate];
        NSLog(@"%@", cmps);
        
        //        NSInteger year = [calendar component:NSCalendarUnitYear fromDate:nowDate];
        //        NSInteger minute = [calendar component:NSCalendarUnitMinute fromDate:nowDate];
        //        NSLog(@"%zd %zd", year, minute);
        
        //        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        //        // 设置日期格式
        //        fmt.dateFormat = @"HH";
        //        NSString *string = [fmt stringFromDate:nowDate];
        //        NSLog(@"%@", string);
    }
    
    /**
     *  2个NSDate之间的时间差值
     */
    void date_interval()
    {
        // 获得系统当前时间
        NSDate *nowDate = [NSDate date];
        
        // 服务器返回的时间字符串
        NSString *createdAtString = @"2015-10-16 10:49:54";
        // 创建一个日期格式化对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        // 设置日期格式
        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
        // NSString -> NSDate
        NSDate *createdAtDate = [fmt dateFromString:createdAtString];
        
        // 计算createdAtDate和nowDate之间相隔的秒数
        NSTimeInterval interval = [nowDate timeIntervalSinceDate:createdAtDate];
        NSLog(@"%f", interval);
        // 3600 / 60 = 60
        // 60 /60 = 1
    }
    
    /**
     *  timestamp -> NSDate
     */
    void fmt_timestamp_to_date3()
    {
        // 时间戳 : 从1970年1月1日0点0分0秒开始经历的毫秒数
        NSInteger timestamp = 1114548435435;
        
        NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp / 1000.0];
        
        NSLog(@"%@", date);
    }
    
    /**
     *  NSString -> NSDate
     */
    void fmt_string_to_date2()
    {
        // 服务器返回的时间字符串
        NSString *string = @"Tue May 31 17:46:55 +0800 2011";
        
        // 创建一个日期格式化对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        // 解析欧美格式的日期字符串, 得设置语言类型为en_US
        fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
        
        // 设置日期格式
        fmt.dateFormat = @"EEE MMM dd HH:mm:ss ZZZZ yyyy";
        
        NSDate *date = [fmt dateFromString:string];
        
        NSLog(@"%@", date);
    }
    
    /**
     *  NSString -> NSDate
     */
    void fmt_string_to_date()
    {
        // 服务器返回的时间字符串
        NSString *string = @"2015-10-16 10:49:54";
        
        // 创建一个日期格式化对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        
        // 设置日期格式
        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
        
        NSDate *date = [fmt dateFromString:string];
        
        NSLog(@"%@", date);
    }
    
    /**
     *  NSDate -> NSString
     */
    void fmt_date_to_string()
    {
        // 获得系统当前时间
        NSDate *now = [NSDate date];
        
        // 创建一个日期格式化对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        
        // 设置日期格式 : 2015年10月10日 15时56分30秒
        // 年(year) : y
        // 月(month) : M
        // 日(day) : d
        // 时(hour) : H(24小时制)h(12小时制)
        // 分(minute) : m
        // 秒(second) : s
        // 时区(zone) : Z
        
        fmt.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒";
        
        // NSDate -> NSString
        NSString *nowString = [fmt stringFromDate:now];
        
        NSLog(@"----- %@", nowString);
    }
  • 相关阅读:
    39岁了,我依旧要谈梦想
    ASP原码加密工具介绍
    extjs_07_combobox&tree&chart
    JS0基础学习笔记(1)
    AndroidUI组件之ActionBar
    Sourcetree 更新git账号密码
    iOS人脸识别核心代码(备用)
    ios 中的tintColor
    appStore上传苹果应用程序软件发布
    iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4917997.html
Copyright © 2011-2022 走看看