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 在调用对 ...
随机推荐
- [BZOJ1188][HNOI2007]分裂游戏(博弈论)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1188 分析: 设SG[i]表示一个石子在位置i上的SG值 这个很容易暴力求,因为i的后 ...
- [CF#286 Div2 D]Mr. Kitayuta's Technology(结论题)
题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到 ...
- B树和B+树
当数据量大时,我们如果用二叉树来存储的会导致树的高度太高,从而造成磁盘IO过于频繁,进而导致查询效率下降.因此采用B树来解决大数据存储的问题,很多数据库中都是采用B树或者B+树来进行存储的.其目的就是 ...
- Ubuntu backlight
我们可以通过键盘来调节亮度,但是那样亮度无法微调,每次变亮变得太多. 在 /sys/class/backlight/nv_backlight 这个目录下,brightness 是最主要的.backli ...
- Criteria查询之sqlRestriction()的理解
sqlRestriction()的理解 在Criteria查询中 使用sqlRestriction()方法来提供SQL语法作限定查询,作为where字句 查看官方给的例子,如下 List cats = ...
- Easyui表单,文本框,下拉菜单三级联动练习代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- asp.net MVC中使用entity framework出现从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值”的处理
方法一: 使用DateTime类型的字段在作为参数传入到数据库前记得赋值,并日期要大于1753年1月1日. 方法二: 将DateTime类型的字段修改为DateTime?类型,由于可空类型的默认值都是 ...
- 【Gym 100947C】Rotate It !!
分两类,奇数和偶数的,用隔项前缀和算一下. #include <algorithm> #include <iostream> #define N 10005 using nam ...
- 中间值为什么为l+(r-l)/2,而不是(l+r)/2
二分法的算法中,我们看到一些代码里取中间值: MID=l+(r-l)/2; 为什么是这个呢?不就是(l+r)/2吗?为什么要多此一举呢? 其实还是有不一样的,看看他们的区别吧: l,r是指针的时候只能 ...
- [vijos1002][NOIP2005]过河
Description 给定一条数轴,起点为0,数轴的某些整数点上有石子.每次可以移动的区间为[S,T].求当到达或超过L时,最少踩到的石子数. Input 输入的第一行有一个正整数L(1 <= ...