/**

*  NSDate常见类方法

*/

// 获得当前时间

NSDate *date1 = [NSDate date];   // 类方法

// NSDate *date1 = [[NSDate alloc] init];   // 初始化方法

NSLog(@"%@", date1);

// 在当前日期基础上加上120秒(在OC中时间大多数都是秒)

NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:8 * 60 * 60];  // 类方法

// NSDate *date2 = [[NSDate alloc] initWithTimeIntervalSinceNow:120];   // 初始化方法

NSLog(@"%@", date2);

// 同理,以下几种情况也都有相应的初始化方法,可以试一下,就不再赘述了

//        NSDate *date3 = [NSDate dateWithTimeInterval:<#(NSTimeInterval)#> sinceDate:<#(nonnull NSDate *)#>];  // 在某个日期的基础上增加

//        NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:<#(NSTimeInterval)#>];   // 在1970年的基础上增加

//        NSDate *date5 = [NSDate dateWithTimeIntervalSinceReferenceDate:<#(NSTimeInterval)#>];   // 在2001年的基础上增加

// 用来返回一个极晚的时间点(4001-01-01 00:00:00 +0000)

NSDate *date6 = [NSDate distantFuture];

NSLog(@"%@", date6);

// 当然还有返回一个极早的时间点的方法(0000-12-30 00:00:00 +0000)

NSDate *date7 = [NSDate distantPast];

NSLog(@"%@", date7);

/**

*  NSDate常见对象方法

*/

// 返回以当前NSDate对象为基准,偏移多少秒后得到的新NSDate对象

NSDate *date8 = [date2 dateByAddingTimeInterval:120];

NSLog(@"%@", date8);

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

BOOL isEqual = [date7 isEqualToDate:date8];

NSLog(@"%d", isEqual);

// 比较时间大小

NSComparisonResult result = [date7 compare:date8];

NSLog(@"%ld", result);

// 比较两个NSDate对象,返回较早/较晚的时间点,并以新NSDate对象的形式返回

NSDate *date9 = [date1 earlierDate:date8];    // 返回较早的时间点

NSLog(@"%@", date9);

NSDate *date10 = [date1 laterDate:date8];     // 返回较晚的时间点

NSLog(@"%@", date10);

// 返回当前对象时间与某个时间点相隔的时间差(秒)(得到的结果若是负数,则表示倒退相应的时间可以回到当前对象按到时间)

// 返回当前对象时间与参数传递的对象时间的相隔秒数,也可以这样理解:从参数时间开始,经过多少秒到达对象执行时间

//        NSInteger x = [date2 timeIntervalSinceDate:date8];

//        NSLog(@"%ld", x);

//        NSInteger y = [date2 timeIntervalSinceNow];   //从客户端当前时间开始,经过多少秒到达对象指定时间

//        NSInteger z = [date2 timeIntervalSince1970];   //从1970-1-1 0:0:0开始,经过多少秒到达对象指定时间。

//        NSInteger a = [date2 timeIntervalSinceReferenceDate];   //从2001-1-1 0:0:0开始,经过多少秒到达对象指定时间。

// NSDateFormatter时间和字符串的转换

// 日期转化为字符串

NSDateFormatter *formater = [[NSDateFormatter alloc] init];  //实例化一个NSDateFormatter对象

//formater.dateStyle = kCFDateFormatterFullStyle;

//[formater setDateStyle:NSDateFormatterMediumStyle];  // 系统有好多种格式

[formater setDateFormat:@"GG yyyy-MM-dd EE a hh:mm:ss z"];   //设定时间格式,这里可以设置成自己需要的格式

NSString *str = [formater stringFromDate:date1];   // 定义一个字符串对象来接收输出的时间字符串

NSLog(@"%@", str);

// 字符串转换为日期

NSDate *date11 = [formater dateFromString:@"公元 2016-03-29 周二 下午 09:09:58 GMT+8"];

NSLog(@"%@", date11);

/**

G -- 纪元

一般会显示公元前(BC)和公元(AD)

y -- 年

假如是2013年,那么yyyy=2013,yy=13

M -- 月

假如是3月,那么M=3,MM=03,MMM=Mar,MMMM=March

假如是11月,那么M=11,MM=11,MMM=Nov,MMMM=November

w -- 年包含的周

假如是1月8日,那么w=2(这一年的第二个周)

W -- 月份包含的周(与日历排列有关)

假如是2013年4月21日,那么W=4(这个月的第四个周)

F -- 月份包含的周(与日历排列无关)

和上面的W不一样,F只是单纯以7天为一个单位来统计周,例如7号一定是第一个周,15号一定是第三个周,与日历排列无关。

D -- 年包含的天数

假如是1月20日,那么D=20(这一年的第20天)

假如是2月25日,那么D=31+25=56(这一年的第56天)

d -- 月份包含的天数

假如是5号,那么d=5,dd=05

假如是15号,那么d=15,dd=15

E -- 星期

假如是星期五,那么E=Fri,EEEE=Friday

a -- 上午(AM)/下午(PM)

H -- 24小时制,显示为0--23

假如是午夜00:40,那么H=0:40,HH=00:40

h -- 12小时制,显示为1--12

假如是午夜00:40,那么h=12:40

K -- 12小时制,显示为0--11

假如是午夜00:40,那么K=0:40,KK=00:40

k -- 24小时制,显示为1--24

假如是午夜00:40,那么k=24:40

m -- 分钟

假如是5分钟,那么m=5,mm=05

假如是45分钟,那么m=45,mm=45

s -- 秒

假如是5秒钟,那么s=5,ss=05

假如是45秒钟,那么s=45,ss=45

S -- 毫秒

一般用SSS来显示

z -- 时区

表现形式为GMT+08:00

Z -- 时区

表现形式为+0800

*/

关于NSDate和NSDateFormatter的几个常用方法的更多相关文章

  1. NSDate和NSDateFormatter 相关应用代码示例

    此方法用来计算当前时间与目标时间的先后顺序: -(NSDate *)calculateTimeWithCurrentTime:(NSDate *)currentDate{ //将当前时间转为本地时区 ...

  2. Objective-C学习篇10—NSDate与NSDateFormatter

    NSDate NSDate 时间类,继承自NSObject,其对象表示一个时间点 NSDate *date = [NSDate date]; NSLog(@"date = %@", ...

  3. 【编程技巧】NSDate,NSDateFormatter,NSTimeInterval

    //获取日期 todaysDate=[NSDate date]; //显示日期和时间 dateFormat = [[NSDateFormatter alloc] init];//NSDate没有自己的 ...

  4. Swift iOS 日期操作:NSDate、NSDateFormatter

    1.日期(NSDate) // 1.初始化 // 初始化一个当前时刻对象 var now = NSDate() // 初始化一个明天当前时刻对象 var tomorrow = NSDate(timeI ...

  5. ios开发--NSDate与NSDateFormatter的相关用法【转】

    原文地址:http://blog.sina.com.cn/s/blog_91ff71c0010188u9.html 1.NSDateFormatter配合NSDate与NSString之间的转化  N ...

  6. iOS-OC-基础-NSDate常用方法

    NSDate常用方法 /*=============================NSDate日期类的使用=============================*/ // 获取当前时间,获得的时 ...

  7. Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver

    ========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...

  8. NSNumber、NSValue、NSDate、NSObject

    注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...

  9. NSDate 时间

    NSDate *date=[NSDate date]; NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; formatter.date ...

随机推荐

  1. Java知多少(112)数据库之删除记录

    删除数据表也有3种方案 一.使用Statement对象 删除数据表记录的SQL语句的语法是: delete from 表名 where 特定条件 例如 : delete from ksInfo whe ...

  2. Git 文件比较

    Git 的三个作业场: 工作区(Work Tree) 项目根目录下 .git 目录以外所有区域,是编辑项目文件的地方. 缓存区(Index) 工作区文件必须先保存在缓存区,之后从缓存区保存到仓库. 仓 ...

  3. ServiceStack.Redis 中关系操作的局限与bug

    redis是文档型的,nosql中难处理的是关系. 比如人可以发博客,博客可以有分类.按照传统sql中,用户表和分类表都是主表,博客表是从表,有用户的外键和分类的外键 如果使用文档型的思考方式. 为用 ...

  4. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  5. 自动化基础普及之selenium是啥?

    Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍. Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? ...

  6. 安装 Oracle P6 EPPM 16 R1 database for 12C A

  7. spring.Net之Ioc在MVC中的使用

    1.引入dll Common.Logging.dll Spring.Core.dll Spring.Web.dll Spring.Web.Extensions.dll Spring.Web.Mvc4. ...

  8. GridView如何实现双击行进行编辑,更新

    虽然标题是原创,但是其实主要的思想呢还是接见了晓风残月的思路,今天在晓风残月的博客上看到了如何利用GridView来实现双击进行编辑.我决定动手实现一下,由于还没有实现双击进行更改操作,所以顺便就把这 ...

  9. 单例(C#版)

    单例: 一个类只有一个实例.巧妙利用了编程语言的一些语法规则:构造函数private, 然后提供一个public的方法返回类的一个实例:又方法和返回的类的实例都是static类型,所以只能被类所拥有, ...

  10. Dynamics AX 中重点数据源方法

     数据源方法 描述   Active  当用户刚选中一行数据时执行该方法.若选中的是主表的数据,也用该方法来触发加载从表符合条件的数据.主要覆盖该方法来根据条件设置记录及其字段是否可见或是否可被编辑. ...