iOS--时间类date详解
NSDate定义时间的类
NSDate是一个时间类,在编写程序时,我们很少遇到。今天我突然碰到,感觉很生疏。
给大家发个博客,让大家也都温习一下,哈哈!
兄弟用的时候突然发现竟然有一些bug,大家用时可以写验证了再用。
1、定义:NSDate *date =[NSDate date];//当前时间对时间的加减
2、对时间的操作
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];//从当前时间开始,若干秒后的时间,参数代表秒
NSDate *date2 = [date1 dateByAddingTimeInterval:60];//以某个时间为标准,加上若干秒后的时间
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1000];//从1970年开始,经过了若干秒的时间计算时间间隔
3、计算时间间隔
NSTimeInterval interval = [date timeIntervalSince1970];//从1970年到某一时间的秒数
NSTimeInterval interval1 = [date1 timeIntervalSinceDate:date];//计算两个时间的间隔(秒)
NSTimeInterval interval2 = [date1 timeIntervalSinceNow];//获取某一时间与当前时间的间隔
NSLog(@"%lf",interval1);
4、时间比较
NSDate *date4 = [date laterDate:date1];//获取两个时间较晚的(距离1970年时间较长的)
NSDate *date5 = [date earlierDate:date1];
DateFormatter时间格式
5、字符串与时间之间的相互转换
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setDateFormat:@"yyyy-MM-dd h:mm:ss "];//设置时间显示的格式,此处使用的formater格式要与字符串格式完全一致,否则转换失败
NSString *dateStr = [formater stringFromDate:date1];//将日期转换成字符串
NSLog(@"%@",dateStr);
NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];//此处使用的formater格式要与字符串格式完全一致,否则转换失败
[formatter1 setTimeZone:[NSTimeZone localTimeZone]];//将字符串转换成日期
NSString *str = @"2015年11月11日 11:11:11";
NSDate *date6 = [formatter1 dateFromString:str];
NSLog(@"%@",date6);
6、时区
NSTimeZone *zone = [NSTimeZone systemTimeZone];//获取系统时区
[formater setTimeZone:zone];//设置时区
NSInteger timeOff = [zone secondsFromGMT];//获取系统时区的格林时差
NSLog(@"%f",timeOff/3600.0);
NSDate *date7=[formatter1 dateFromString:str];
NSDate *date8 = [date7 dateByAddingTimeInterval:timeOff];
NSLog(@"%@",date8);
7、消除时间差
NSString *str=@"2015年11月10日 11:11:11";
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
NSDate *date=[formatter dateFromString:str];
NSLog(@"%@",date);
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *date1=[formatter dateFromString:str];
NSLog(@"%@",date1);
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date2=[formatter dateFromString:str];
NSLog(@"%@",date2);
NSInteger timeoff=[[NSTimeZone localTimeZone] secondsFromGMT];
NSDate *date3=[date dateByAddingTimeInterval:timeoff];
NSLog(@"%@",date3);
8、与之相差的data
NSDate *data=[[NSData alloc]init];
NSString *str=@"1234";
NSData *data1=[str dataUsingEncoding:NSUTF8StringEncoding];//将字符串转换成data,NSUTF8StringEncoding代表编码格式。
NSString *str1=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//data转换为字符串
NSLog(@"%@",data1);//输出data类型
NSLog(@"%zi",data1.length);//输出data长度
NSData *data2 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.iconpng.com/png/ios7- premium/tree11.png"]];//获取网络数据
NSLog(@"%@",data2);
NSMutableData *data3 = [NSMutableData data];//创建一个空的数据
[data3 appendData:data];//拼接data
NSLog(@"%@",data3);
iOS--时间类date详解的更多相关文章
- iOS 单元测试之XCTest详解(一)
iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...
- iOS中—触摸事件详解及使用
iOS中--触摸事件详解及使用 (一)初识 要想学好触摸事件,这第一部分的基础理论是必须要学会的,希望大家可以耐心看完. 1.基本概念: 触摸事件 是iOS事件中的一种事件类型,在iOS中按照事件划分 ...
- ios新特征 ARC详解
IOS ARC 分类: IOS ARC2013-01-17 09:16 2069人阅读 评论(0) 收藏 举报 目录(?)[+] 关闭工程的ARC(Automatic Reference Co ...
- 在java poi导入Excel通用工具类示例详解
转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36 作者:daochuwenziyao 我要评论 这篇文章主要给大家介绍了关于在j ...
- IOS—UITextFiled控件详解
IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGR ...
- iOS原生地图开发详解
在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760.对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...
- Properties类使用详解
Java Properties类使用详解 概述 Properties 继承于 Hashtable.表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串. Pr ...
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...
- [转]iOS学习之UINavigationController详解与使用(三)ToolBar
转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...
随机推荐
- 使用wait()与notify()实现线程间协作
调用sleep()和yield()的时候锁并没有被释放,而调用wait()将释放锁.这样另一个任务(线程)可以获得当前对象的锁,从而进入它的synchronized方法中.可以通过notify()/n ...
- RMAN 前期准备工作和实例
理解恢复目录,RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件.保存在控制文件的备份信息是很危险的,如果控制文件的破坏将导致备份信息的丢失与恢复的失败,而且,没有 ...
- Sql:多行合并一行以及多条数据取时间最早的那条
有两个导数据的需求,1.一张表里面每一个订单号可能对应多条数据,每个单号返回时间最早的那条. 2.根据条件查询某个字段并按照逗号,合并在一起. 表类似结构如下: 第一条sql:select c.Id, ...
- myhandle
#ifndef my_handle_h #define my_handle_h #include <stdint.h> #include "mydef.h" #incl ...
- kotlin 练习
Kotlin 定义函数的一些语法 fun main(args:Array<String>):Unit { val x:() -> Unit = { println("hel ...
- 5、HTML5列表、块和布局
1.块元素 块元素在显示的时候,通常会以新行开始 如:<h1> <p> <ul> <!-- 块—>注释 <p>hello</p> ...
- springMVC中实现servlet依赖注入
记录一下开发过程中遇到的问题: 首先看一下这个帖子: http://blog.csdn.net/gaogaoshan/article/details/23540129 由于我使用的是springMVC ...
- Myeclipse——SSH框架搭建
Struts2.x+Spring3.x+Hibernate3.x 一.首先建立一个Web 工程 二.搭建Struts 右键工程,选择MyEclipse->Add Struts Capabilit ...
- 破解Google Gmail的https新思路
最近,Google针对gmail被攻击事件,全面默认启用了始终以https访问Gmail的方式了.但是,对于可以动用整个国家力量的黑客来说,从网络通讯数据中(在此不讨论对用户电脑种木马破解https的 ...
- Android 设置ListView当前显示的item
项目中可能会有这种需求:动态设置ListView显示的item 这种需求可能会出现在不同的情况下,有的是打开页面就要显示在特定的位置,也有的是浏览列表时实时更新数据并且改变了集合中数据,或者是某种条件 ...