Objective-C学习笔记之NSData、NSDate
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的更多相关文章
- Objective -C学习笔记之字典
//字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...
- Objective -C学习笔记 之copy(复制)
//自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...
- iOS学习笔记22-推送通知
一.推送通知 推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等. 推送通知的常用应用场景: 一些任务管理APP ...
- iOS学习笔记17-FMDB
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记17-FMDB你好!
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- NSURLSession学习笔记
NSURLSession学习笔记(一)简介 一.URL Session的基本概念 1.三种工作模式: 默认会话模式(default):工作模式类似于原来的NSURLConnection,使用的是基于磁 ...
- iOS学习笔记之回调(二)
写在前面 上一篇学习笔记中简单介绍了通过目标-动作对实现回调操作:创建两个对象timer和logger,将logger设置为timer的目标,timer定时调用logger的sayOuch函数.在这个 ...
- objc_msgSend消息传递学习笔记 – 消息转发
该文是 objc_msgSend消息传递学习笔记 – 对象方法消息传递流程 的基础上继续探究源码,请先阅读上文. 消息转发机制(message forwarding) Objective-C 在调用对 ...
随机推荐
- Linux运维教程
最近看马哥Linux运维,收益颇多.愿马哥,身体健康! 2013马哥全套 http://pan.baidu.com/s/1c0JQu9i 运维技术文档 http://pan.baidu.com/s/1 ...
- JS 获取上一层目录
派生到我的代码片 <script type="text/javascript"> //返回当前工作目录 function GetCurrDir(){ var pathN ...
- Yii2 使用小部件 Breadcrumbs
yii有两种Breadcrumbs写法,one: echo Breadcrumbs::widget([ 'itemTemplate' => "<li><i>{l ...
- Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml.
用Jsoup在获取一些网站的数据时,起初获取很顺利,但是在访问某浪的数据是Jsoup报错,应该是请求头里面的请求类型(ContextType)不符合要求. 请求代码如下: private static ...
- http强制跳转到https
原文地址:http://m.blog.csdn.net/article/details?id=8549290 需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.com, ...
- Oracle MERGE INTO 语句
MERGE INTO USER_TEST T1 USING (SELECT '1001' AS ID,'王睿' AS NAME FROM dual) T2 ON ( T1.ID=T2.ID) WHEN ...
- 跨域http请求
<?php header("Access-Control-Allow-Origin: *"); header("Content-Type: application/ ...
- spring第一课,beans配置(上)
1.通过property配置bean <!-- 配置一个 bean --> <bean id="helloWorld" class="com.atgui ...
- DIRECTORY_SEPARATOR:PHP 系统分隔符常量
今天在nginx部署项目,在浏览器输入http://127.0.0.2/index.php/system/category/?action=list 老是提示error nginx配置没有问题,下了其 ...
- iOS异步下载下载进度条显示
说到http异步下载,首先要知道其中的关键类. 关键类是NSURLConnection NSURLRequest NSMutableURLRequest 委托是 NSURLConnectionDo ...