iOS开发-OC篇-NSDate

今天总结一下OC中NSDate的一些简单的用法,注意可不是NSData哦!

NSDate的使用

1> NSDate初始化方法

//获取当前时间

NSDate * date = [NSDate date];

//返回以当前时间为基准,然后过了secs秒的时间

[NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24];

//返回以lastDate为基准,然后过了secs秒的时间

[NSDate dateWithTimeInterval:60 * 60 * 24 sinceDate:lastDate];

//返回以2001年1月1日为基准,然后过了secs秒的时间

[NSDate dateWithTimeIntervalSinceReferenceDate:0];

//返回以1970年1月1日为基准,然后过了secs秒的时间

[NSDate dateWithTimeIntervalSince1970:60 * 60 * 24];

2> 获取时间界限方法

//将来的时间界限4000年

[NSDate distantFuture];

//过去的时间界限0000年

[NSDate distantPast];

3> 比较时间方法

//比较两个时间是否相同

[date isEqualToDate:date2];

//返回比较晚的日期

[date laterDate:date2];

//返回比较早的日期

[date earlierDate:date2];

//返回NSComparisonResult对象

[date compare:date2];

4> 获取时间间隔方法

//获取两个时间的时间间隔

[date2 timeIntervalSinceDate:date];

//获取现在与2001年的时间间隔

[NSDate timeIntervalSinceReferenceDate];

//获取date1与2001年的时间间隔

[date1 timeIntervalSinceReferenceDate];

//获取date1与现在时间间隔

date1.timeIntervalSinceNow

5> 添加时间间隔

[date dateByAddingTimeInterval:60 * 60 * 24];

6> 根据当前位置字符串展示日期

[date descriptionWithLocale:[NSLocale currentLocale]];

2、NSDateFormatter格式化日期类

举例:

NSDate * date = [NSDate date];

//初始化

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

//设置日期格式

formatter.dateStyle = NSDateFormatterFullStyle;

//设置时间格式

formatter.timeStyle = NSDateFormatterShortStyle;

//设置区域语言

formatter.locale = [NSLocale localeWithLocaleIdentifier:@"zh-cn"];

//将日期按以上格式转换成字符串

NSString * dateString = [formatter stringFromDate:date];

NSLog(@"%@",dateString);

自定义日期格式NSDate转NString:

NSDate * date = [NSDate date];

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

//设置自定义日期格式

formatter.dateFormat = @"yyyy-MM-dd a hh:mm:ss.SSS E Z ";

NSString * dateString = [formatter stringFromDate:date];

NSLog(@"%@",dateString);

自定义日期格式NString转NSDate:

NSString * string = @"2015-12-29 10:18:19";

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

NSDate * date = [formatter dateFromString:string];

NSLog(@"%@",date);

总结dateFormat格式:

yyyy     年

MM      月

dd    日

HH    24小时

hh    12小时

mm       分钟

ss            秒

SSS         微秒

a            上午下午

E             星期

Z             时区

3、时间类的应用

1、测试一段代码的执行时间

NSDate * date = [NSDate date];

这里放测试代码

NSLog(@"%lf",[[NSDate date] timeIntervalSinceDate:date]);

2、Unix时间戳

NSDate转时间戳

[[NSDate date] timeIntervalSince1970];

时间戳转NSDate

[NSDate dateWithTimeIntervalSince1970:1451394269];

时间: 2024-08-07 17:00:52

iOS开发-OC篇-NSDate的相关文章

iOS开发——OC篇&消息传递机制(KVO/NOtification/Block/代理/Target-Action)

iOS开发中消息传递机制(KVO/NOtification/Block/代理/Target-Action) 今晚看到了一篇好的文章,所以就搬过来了,方便自己以后学习 虽然这一期的主题是关于Foundation Framework的,不过本文中还介绍了一些超出Foundation Framework(KVO和Notification)范围的一些消息传递机制,另外还介绍了delegation,block和target- action. 大多数情况下,消息传递该使用什么机制,是很明确的了,当然了,在某

iOS开发——OC篇&纯代码退出键盘

关于iOS开发中键盘的退出,其实方法有很多中,而且我也学会了不少,包括各种非纯代码界面的退出. 其实这里纯代码界面推出如果用到Xib何Storyboard上面去还是一样的思路操作,只不过笔者在开发的时候是在纯代码界面遇到的问题,所以久以此命名. 下面大家介绍怎么在纯代码的情况下,退出(隐藏)键盘,Xib和StoryBoard情况下这里就不解释了(照此思路). 一:UITextField 关于UITextFiel个人感觉又很多中方法,但是最近开发中我用的最多的也就是这两种,根据和已经在公司上班的同

iOS开发——OC篇&常用问题解答(二)

101.编译错误:ld: library notfound for -lPods 当项目中使用了 cocoaPods 时,经常出现此错误(通常是 release 的时候). 这是由于 pod install 后,cocoaPods 会创建一个新的 workspace.你必须关闭项目并重新打开.问题即可解决. 102.为什么 iOS 的时间总是比真实时间慢8小时 例 如,一个北京时间"2014-4-4 22:00"(字符串),需要转换成 NSDate.字符串转换成 NSDate 一般是通

iOS开发——OC篇&常用问题解答(一)

常用问题解答 1.设置 ImagePicker 的大小 ImagePicker 在 Popover Controller 总是以默认大小显示,设置 popoverContentSize 属性似乎无用.解决办法是将ImagePicker “包含”到一个定制的 ViewController 中,然后再 presentPopover 这个 ViewController : UIViewController *containerController = [[UIViewController alloc]

iOS开发-OC篇-NSSet,NSNumber

最近回顾了OC的一些基本知识,发现确实遗忘了很多重要的东西,今天整理了一些小的知识点,和大家分享一下. iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. 1.NSNumber包装类 1>  普通初始化 NSNumber * num1 = [[NSNumber alloc] initWithInt:20]; NSNumber * num2 = [NSNumber numberWithChar:'a']; 2>字面量初始化 NSNumber * num3 =

iOS开发-OC篇 load方法 和 initialize方法比较

Load方法 和 initialize方法的比较    在OC语言中,我们相比之下对于load和initialize方法的使用比较少,所以会不是很清楚的了解二者的用途和区别,所以整理了一下,和大家进行分享,有所得不对的地方,希望能够指出来,多谢! 1.load方法特点: 1> 当类被引用进程序的时候会执行这个函数 2> 一个类的load方法不用写明[super load],父类就会收到调用,并且在子类之前. 3> Category的load也会收到调用,但顺序上在主类的load调用之后.

iOS开发-OC篇-KVC详解

说到KVC,不得不承认KVC在开发过程中是神器一般的存在.如果正确灵活使用kvc,会使得整个开发过程轻松很多. KVC的使用 1.KVC 全称 key valued coding 键值编码 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性.JAVA,C#都有这个机制.ObjC也有,所以你根部不必进行任何操作就可以进行属性的动态读写,就是KVC. KVC的操作方法由NSKeyValueCoding提供,而他是NSObjec

iOS开发——OC篇&协议篇/NSCoder/NSCoding/NSCoping

协议篇/NSCoder/NSCoding/NSCoping 协议声明类需要实现的的方法,为不同的类提供公用方法,一个类可以有多个协议,但只能有一个父类,即单继承.它类似java中的接口. 正式协议(formal protocol)------------------------------------------------------------------------------------声明正式协议使用@protocol指令,以@end结尾. @protocol MyXMLSupport

iOS开发-OC篇-单例模式

回顾一下load和initialize方法,有几点需要注意. load方法和initialize方法分析: 1.load方法: 1> 当类被引用进程序的时候会执行这个函数 2> 一个类的load方法不用写明[super load],父类就会收到调用,并且在子类之前. 3> Category的load也会收到调用,但顺序上在主类的load调用之后. 2.initialize方法: 1> initialize的自然调用是在第一次主动使用当前类的时候 2> 和load不同,即使子类