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 在调用对 ...
随机推荐
- jquery渐渐的显示、隐藏效果
<!DOCTYPE html> <html> <head> <meta charset="gb2312" /> <title& ...
- AngularJS指令的详解
指令作为AngularJS中最为重要的部分,所以这个框架本身也是自带了比较多的的指令,但是在开发中,这些指令通常不能满足我们的需要,所以我们也是需要自定义一些指令的.指令是我们用来扩展浏览器能力的技术 ...
- SQL 常用函数及示例
--SQL 基础-->常用函数 --================================== /* 一.函数的分类 SQL函数一般分为两种 单行函数 基于单行的处理,一行产生一个结果 ...
- [转]理解JavaScript中的事件处理
什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击 ...
- Django-Json 数据返回
1 .引入Json import json json.dumps(数据)
- css3 操作动画要点
CSS3 有3种和动画相关的属性:transform, transition, animation. 不同点: 1. 触发条件不同.transition通常和hover等事件配合使用,由事件触发.a ...
- java判断request请求是手机还是pc终端
/** * 判断请求是否手机端 * @param req * @return */ public static boolean isMobile(HttpServletRequest req) { U ...
- 让webstorm支持avalon语法自动补全
在file菜单下选择Settings,选择Editor ——> Inspections ——> Html ——> Unknown HTML tag attibute添加以下标签ms- ...
- Day_6作业_模拟人生
as #!/usr/bin/env python # encoding: utf-8 class wisdom(object): def __init__(self,n,g): self.n = n ...
- HDFS源码分析:NameNode相关的数据结构
本文主要基于Hadoop1.1.2分析HDFS中的关键数据结构. 1 NameNode 首先从NameNode开始.NameNode的主要数据结构如下: NameNode管理着两张很重要的表: 1) ...