/**

*  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. 红黑树(二)之 C语言的实现

    概要 红黑树在日常的使用中比较常用,例如Java的TreeMap和TreeSet,C++的STL,以及Linux内核中都有用到.之前写过一篇文章专门介绍红黑树的理论知识,本文将给出红黑数的C语言的实现 ...

  2. Outlook Web App简介

    一.什么是Outlook Web AppOutlook Web Access简称OWA是基于微软Hosted Exchange技术的托管邮局的一项Web访问功能.通过访问Outlook Web Acc ...

  3. Tools - Oracle SQL Developer

    Oracle SQL Developer Oracle公司出品的一个免费非开源的用以开发数据库应用程序的图形化工具. 可以浏览数据库对象.运行SQL语句和脚本.编辑和调试PL/SQL语句,也可以创建执 ...

  4. js关于对象键值为数字型时输出的对象自动排序问题的解决方法

    一.对象键值为数字型时输出的对象自动排序问题如: var objs = {    "1603":{id:"1603"},    "1702" ...

  5. Android学习笔记之使用百度地图实现路线规划+公交信息检索

    PS:装了个deepin,感觉真的很高大上. 学习内容: 1.公交信息检索 2.路线规划   关于百度地图的开发也就这么多了.重要的部分也就那么些.原本打算搞到poi搜索就算了,不过看到了这两个方面还 ...

  6. 使用Kibana 分析Nginx 日志并在 Dashboard上展示

    一.Kibana之Visualize 功能 在首页上Visualize 标签页用来设计可视化图形.你可以保存之前在discovery中的搜索来进行画图,然后保存该visualize,或者加载合并到 d ...

  7. css3照片墙+曲线阴影

    css3照片墙+曲线阴影 最近在学习jquery,晚上想复习下以前学过的知识,看到网上有关于css3照片墙的,感觉挺好玩的,就做了做.(以下图片均来自网络) 一.css3照片墙 html部分: < ...

  8. Activating Browser Modes with Doctype

    原文地址:https://hsivonen.fi/doctype/ In order to deal both with content written according to Web standa ...

  9. SQL Server 2005 Service Broker

    一.引言 SQL Server 2005 的一个主要成就是可以实现可靠.可扩展且功能完善的数据库应用程序.与 .NET Framework 2.0 公共语言运行库 (CLR) 的集成使开发人员可以将重 ...

  10. Unity实现滑页效果(UGUI)

    简介 项目需要...直接展示效果吧: 原理 使用UGUI提供的ScrollRect和ScrollBar组件实现基本滑动以及自己控制每次移动一页来达到滑页的效果. 实现过程 1.创建两个panel,上面 ...