zoukankan      html  css  js  c++  java
  • Objective-C学习笔记之NSData、NSDate

    NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛。NSData创建后不可以再修改,NSMutableData可以再次修

     1         NSString *str = @"1234thhijioiooij";
     2         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];//将字符串转换成data,NSUTF8StringEncoding代表编码格式
     3         
     4         NSString *str1 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];//data转换成字符串
     5         NSLog(@"%@",str1);
     6         
     7         NSLog(@"%@",data);//输出data
     8         
     9         NSLog(@"%zi",data.length);//data的长度
    10         
    11         NSData *data1 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.iconpng.com/png/ios7-premium/tree11.png"]];//获取网络数据
    12         
    13         NSLog(@"%@",data1);
    14         
    15         NSMutableData *data2 = [NSMutableData data];//创建一个空的数据
    16         [data2 appendData:data];//拼接data

    NSDate

     1         NSDate *nsdate = [NSDate dateWithTimeIntervalSinceNow:20*60*60];// 返回以当前时间为基准,然后过了20*60*60秒的时间
     2         NSLog(@"%@",nsdate);
     3         NSDate *nsdate2 = [NSDate date];//获取当前时间
     4         NSLog(@"%@",nsdate2);
     5         NSTimeInterval time = [[NSDate date]/*当前时间*/ timeIntervalSinceDate:nsdate/*填写日期*/];    //获取两个日期的间隔时间差(单位s)
     6         NSTimeInterval time1 = [[NSDate date]/*当前时间*/ timeIntervalSinceNow];//返回与当前时间的时间差(单位s)
     7         NSLog(@"%f,%f",time,time1);
     8         NSDate *laterOne = [nsdate laterDate:nsdate2];//获取两个日期时间对象中较晚的一个
     9         NSDate *laterOne1 = [nsdate earlierDate:nsdate2];    //获取两个日期时间对象中较早的一个
    10         NSDate *anHourAfter = [laterOne  dateByAddingTimeInterval:60 * 60];//获取给定时间 过了多少秒后的时间,秒数可以为负值
    11         
    12         //日期时间格式化对象(日期时间按自定义格式输出)
    13         NSDateFormatter *dateFormatter = [NSDateFormatter new];
    14         //设置日期显示格式
    15 //        [dateFormatter setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒 a"];
    16         [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];//格式化之后不存在时差了,字符小写12小时制,大写24小时制
    17         //格式化日期时间对象(把日期对象转换成字符串)
    18         NSString *localDateTime = [dateFormatter/*格式*/ stringFromDate:[NSDate date]/*对象*/];
    19         NSLog(@"%@",localDateTime);
    20         //把日期格式的字符串转换成日期对象(将字符串转化为日期,需要把字符串格式跟自定义时间日期格式一致,才能抓取)
    21         NSString *myDateTimeStr = @"2013-04-25 11:35:20";
    22         NSDateFormatter *formatter = [NSDateFormatter new];
    23         [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    24         NSDate *newDate = [formatter/*格式*/ dateFromString:myDateTimeStr/*对象*/];
     解决时差
    1
    // //系统时区 2 NSTimeZone *zone = [NSTimeZone systemTimeZone]; 3 NSString *abbStr = [zone abbreviation];//系统时区缩写 4 NSLog(@"系统时区缩写:%@",abbStr); 5 NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];//当地时区 6 NSString *abbStr1 = [localTimeZone abbreviation]; 7 NSLog(@"%@",abbStr1); 8 //和格林尼治时间差 9 NSInteger timeOff = [zone secondsFromGMT]; 10 NSLog(@"%ld",timeOff/60/60);//输出8 11 //时差转化 12 NSDate *date = [[NSDate date] dateByAddingTimeInterval:timeOff/*8小时*/];//加上时间差 13 NSLog(@"%@****%@",date,[NSDate date]);

     解决字符串转换为时间出现的时差问题

     1  //方法一
     2         NSString *str=@"2015-11-3 10:20:00";
     3         NSDateFormatter *foma=[[NSDateFormatter alloc]init];
     4         [foma setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
     5         NSDate *date=[foma dateFromString:str];
     6         NSLog(@"%@",date);//2015-11-03 02:20:00 +0000
     7         NSInteger timeoff=[[NSTimeZone systemTimeZone]secondsFromGMT];//计算出时间差
     8         date=[date dateByAddingTimeInterval:timeoff];//为解决字符串转换为时间时出现的时差而生
     9         NSLog(@"%@",date);//2015-11-03 10:20:00 +0000
    10  //方法二
    11     // 将时区设置为UTC国际校准时间
    12         NSString *str=@"2015-11-3 10:20:00";
    13         NSDateFormatter *foma=[[NSDateFormatter alloc]init];
    14         [foma setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    15         [foma setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
    16         NSDate *date1=[foma dateFromString:str];
    17         NSLog(@"%@",date1);
    18  //方法三
    19         NSString *str=@"2015-11-3 10:20:00";
    20         NSDateFormatter *foma=[[NSDateFormatter alloc]init];
    21         [foma setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    22         [foma setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    23         NSDate *date1=[foma dateFromString:str];
    24         NSLog(@"%@",date1);
  • 相关阅读:
    oracle里的tns是什么意思
    什么是联机分析处理(OLAP)
    JDBC和ODBC
    mysql 乱码
    eclipse常用快捷键和插件
    数仓项目01:准备工作
    github、maven、idea初始化一个项目
    数仓项目02:集群搭建
    数仓项目03:数据采集层(Flume+Kafka)
    Java Swing 日期控件(转载)
  • 原文地址:https://www.cnblogs.com/liuguan/p/4933000.html
Copyright © 2011-2022 走看看