• NSDate NSString相互转化


    时间戳是经常用到的,今天就总结一下

    //设置转化格式
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setLocale: [NSLocale currentLocale]];
        [formatter setTimeZone: [NSTimeZone localTimeZone]];
        [formatter setDateStyle: NSDateFormatterMediumStyle];
        [formatter setTimeStyle: NSDateFormatterShortStyle];
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//HH是24小时制, hh是12小时制, HH:mm:ss里面的 mm 不能大写,否则这个分钟会一直是这个yyyy-MM-dd 里面的MM的值,同时dd和ss都不能大写
        
    //    [formatter setDateFormat:@"yyyy年MM月dd日HH时mm分ss秒"];//这样设置也是可行的
        
        //时间戳转化为时间
        NSString *doubleStr = @"1446610423";
        NSDate *dateFromDouble = [NSDate dateWithTimeIntervalSince1970: doubleStr.doubleValue];
        NSLog(@"dateFromDouble = %@", dateFromDouble);
        
        //时间转化为字符串
        NSDate *currentDate = [NSDate date];
        NSLog(@"currentDate = %@", currentDate);
        NSString *strFromDate = [formatter stringFromDate: currentDate];
        NSLog(@"strFromDate = %@", strFromDate);
        
        //时间字符串转化为时间
        NSString *dateStr = @"2015-11-27 15:11:19";
        NSDate *dateFromStr = [formatter dateFromString: dateStr];
        NSLog(@"dateFromStr = %@", dateFromStr);//会出现8小时的时差
        
        //出现8小时时差
        //解决办法一
        [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
        NSDate *correctDate = [formatter dateFromString: dateStr];
        NSLog(@"correctDate = %@", correctDate);
        
        //解决办法二
        NSTimeZone *sysTimeZone = [NSTimeZone systemTimeZone];
        NSInteger interval = [sysTimeZone secondsFromGMTForDate: dateFromStr];
        NSDate *localDate = [dateFromStr dateByAddingTimeInterval:interval];
        NSLog(@"localDate = %@", localDate);
        
        //解决办法三, 这个不太提倡,只是针对于中国
        NSDate *chinaDate = [dateFromStr dateByAddingTimeInterval: 8 * 60 * 60];//加上8个小时的时差
        NSLog(@"chinaDate = %@", chinaDate);
    

     Demo下载地址:https://github.com/shilihuan/NSString-NSDate

  • 相关阅读:
    关于解决win10安装mongodb启动服务失败的解决办法
    python3 Debug报错 Traceback (most recent call last)
    centos7 iptable开放端口失败的总结
    操作系统
    大数据医疗
    软件相关
    射频消融仪产品相关
    YY/T 0664—2020《医疗器械软件 软件生存周期过程》 相关
    ISO19001相关
    GMP现场指导相关
  • 原文地址:https://www.cnblogs.com/shidaying/p/5001148.html
Copyright © 2020-2023  润新知