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详解的更多相关文章

  1. iOS 单元测试之XCTest详解(一)

    iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...

  2. iOS中—触摸事件详解及使用

    iOS中--触摸事件详解及使用 (一)初识 要想学好触摸事件,这第一部分的基础理论是必须要学会的,希望大家可以耐心看完. 1.基本概念: 触摸事件 是iOS事件中的一种事件类型,在iOS中按照事件划分 ...

  3. ios新特征 ARC详解

    IOS ARC 分类: IOS ARC2013-01-17 09:16 2069人阅读 评论(0) 收藏 举报   目录(?)[+]   关闭工程的ARC(Automatic Reference Co ...

  4. 在java poi导入Excel通用工具类示例详解

    转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36   作者:daochuwenziyao   我要评论   这篇文章主要给大家介绍了关于在j ...

  5. IOS—UITextFiled控件详解

    IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGR ...

  6. iOS原生地图开发详解

    在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760.对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...

  7. Properties类使用详解

    Java Properties类使用详解   概述 Properties 继承于 Hashtable.表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串. Pr ...

  8. iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

    http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...

  9. [转]iOS学习之UINavigationController详解与使用(三)ToolBar

    转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...

随机推荐

  1. json数组转数组对象

    import java.io.IOException; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com. ...

  2. iOS 运行时runtime控制私有变量以及私有方法

    OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...

  3. 一款免费的js图表工具--morris

    前段时间需要使用免费的图表工具做报表,同事提及了一款图表工具morris.官方网站: http://www.oesmith.co.uk/morris.js/ 该插件遵循BSD协议,可以用于商业软件,也 ...

  4. NOIP 2015 游记

    本来和zly和wxh约好了 高三一起再来玩一次复赛,结果最终只有我一个人来了说...貌似是年段主任不让去...总算见识了比我们学校的YSD更爱管闲事的年段主任. 今年比赛竟然在衢州二中,学校不大,但感 ...

  5. 更新Mac OSX XCode后Git 不能使用提示Can't start Git: /usr/bin/git

    更新Mac OSX XCode后Git 不能使用提示Can't start Git: /usr/bin/git 解决办法: 终端运行 sudo xcodebuild -license 同意协议就好了.

  6. Eclipse中怎么安装TestNG单元测试框架

    在进行使用的eclipse的进行开发的代码中,必然就会需要进行单元测试,在单元测试的情况提供较多的框架单元测试,例如使用junit单元测试,而在国外进行开发较好的单元测试,提供了较好的测试的报告,ju ...

  7. html图片预览

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. Python Day 01

    What is variables? 一段命名的内存空间 变量即在程序运行过程中,它的值是允许改变的量 1.变量命名: 合法: 显式.通俗易懂. nums_of_jay_gf = 19 NumsOfJ ...

  9. HDU 4067 hdoj 4067 Random Maze 最小费用流

    给出n个点,m条边,入口s和出口t,对于每条边有两个值a,b,如果保留这条边需要花费:否则,移除这条边需要花费b. 题目要求用最小费用构造一个有向图满足以下条件: 1.只有一个入口和出口 2.所有路都 ...

  10. Homebrew安装及使用

    简介 Homebrew官网:http://brew.sh/index_zh-cn.html Homebrew是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,相当于linux ...