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

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

NSDate

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

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

  //方法一
NSString *str=@"2015-11-3 10:20:00";
NSDateFormatter *foma=[[NSDateFormatter alloc]init];
[foma setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *date=[foma dateFromString:str];
NSLog(@"%@",date);//2015-11-03 02:20:00 +0000
7 NSInteger timeoff=[[NSTimeZone systemTimeZone]secondsFromGMT];//计算出时间差
8 date=[date dateByAddingTimeInterval:timeoff];//为解决字符串转换为时间时出现的时差而生
NSLog(@"%@",date);//2015-11-03 10:20:00 +0000
//方法二
// 将时区设置为UTC国际校准时间
NSString *str=@"2015-11-3 10:20:00";
NSDateFormatter *foma=[[NSDateFormatter alloc]init];
[foma setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
15 [foma setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *date1=[foma dateFromString:str];
NSLog(@"%@",date1);
//方法三
NSString *str=@"2015-11-3 10:20:00";
NSDateFormatter *foma=[[NSDateFormatter alloc]init];
[foma setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
22 [foma setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date1=[foma dateFromString:str];
NSLog(@"%@",date1);

Objective-C学习笔记之NSData、NSDate的更多相关文章

  1. Objective -C学习笔记之字典

    //字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...

  2. Objective -C学习笔记 之copy(复制)

    //自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...

  3. iOS学习笔记22-推送通知

    一.推送通知 推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等. 推送通知的常用应用场景: 一些任务管理APP ...

  4. iOS学习笔记17-FMDB

    上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...

  5. iOS学习笔记17-FMDB你好!

    上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...

  6. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  7. NSURLSession学习笔记

    NSURLSession学习笔记(一)简介 一.URL Session的基本概念 1.三种工作模式: 默认会话模式(default):工作模式类似于原来的NSURLConnection,使用的是基于磁 ...

  8. iOS学习笔记之回调(二)

    写在前面 上一篇学习笔记中简单介绍了通过目标-动作对实现回调操作:创建两个对象timer和logger,将logger设置为timer的目标,timer定时调用logger的sayOuch函数.在这个 ...

  9. objc_msgSend消息传递学习笔记 – 消息转发

    该文是 objc_msgSend消息传递学习笔记 – 对象方法消息传递流程 的基础上继续探究源码,请先阅读上文. 消息转发机制(message forwarding) Objective-C 在调用对 ...

随机推荐

  1. 玩转WIN7的MKLINK

    引言: 换了新电脑,终于再次使用上啦WIN7 ,经过一个周每天重装N次系统,终于弄好一个像样的系统啦.由于使用rt7lite对WIN7SP1官方整合包进行了适当精简,所以最终系统的稳定性还得经过一段时 ...

  2. linux android真机测试

    1. 在终端运行 lsusb 会发现结果有会有如下类似记录: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 ...

  3. oracle递归查询树的SQL语句

    来自互联网 SELECT * FROM a_ParkingLot AWHERE A.REGIONID IN(    SELECT r.ID FROM a_region r    START WITH ...

  4. extJs学习基础

    显示和隐藏 所有的组件都是在show和hide方法中构造的.用来隐藏组件的默认的css方法是“display:none”但是通过hidemode配置的时候就有所变化了: Ext.onReady(fun ...

  5. JavaIO流文件的操作总结

    IO流的分类 1.根据数据的流向: 输入流:用来读数据,如从外界设备读数据到内存中: 输出流:用来写数据,如从内存输出数据到外界存储设备: 2.根据数据流的格式: 字节流:一般用于声音或者秃瓢等二进制 ...

  6. git 保存用户名和密码

    打开TortoiseGit控制面板 点击 Edit global .gitconfig文件 添加 [credential] helper = store OK了 你再登录一次之后密码就被记住了

  7. maven中snapshot快照库和release发布库的区别和作用

    在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的, ...

  8. C#-ado.net-属性扩展

    属性扩展 是封装好的类中添加更多属性,此方法可以添加更多的数据运算方法,更灵活便捷 上一篇中介绍的是实体类和数据访问类,实体类封装的内容如下: 执行查询语句后,结果如下: 我们可以看到,性别显示的是t ...

  9. 如何在HTMl网页中插入百度地图

    方法/步骤 1.打开"百度地图生成器"的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 如下图: 2.在"1 ...

  10. 用MathType编辑横三角形的方法

    如果常常接触数学公式,你会发现同一个符号如果变换方向使用就可以代表不同的数学含义,这是非常常见的一种数学现象了.对于这种情况在数学公式编辑器中,我们可以使用不同的模板来进行编辑.比如横着的三角形符号, ...