关于NSDate和NSDateFormatter的几个常用方法
/**
* 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的几个常用方法的更多相关文章
- NSDate和NSDateFormatter 相关应用代码示例
此方法用来计算当前时间与目标时间的先后顺序: -(NSDate *)calculateTimeWithCurrentTime:(NSDate *)currentDate{ //将当前时间转为本地时区 ...
- Objective-C学习篇10—NSDate与NSDateFormatter
NSDate NSDate 时间类,继承自NSObject,其对象表示一个时间点 NSDate *date = [NSDate date]; NSLog(@"date = %@", ...
- 【编程技巧】NSDate,NSDateFormatter,NSTimeInterval
//获取日期 todaysDate=[NSDate date]; //显示日期和时间 dateFormat = [[NSDateFormatter alloc] init];//NSDate没有自己的 ...
- Swift iOS 日期操作:NSDate、NSDateFormatter
1.日期(NSDate) // 1.初始化 // 初始化一个当前时刻对象 var now = NSDate() // 初始化一个明天当前时刻对象 var tomorrow = NSDate(timeI ...
- ios开发--NSDate与NSDateFormatter的相关用法【转】
原文地址:http://blog.sina.com.cn/s/blog_91ff71c0010188u9.html 1.NSDateFormatter配合NSDate与NSString之间的转化 N ...
- iOS-OC-基础-NSDate常用方法
NSDate常用方法 /*=============================NSDate日期类的使用=============================*/ // 获取当前时间,获得的时 ...
- Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver
========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...
- NSNumber、NSValue、NSDate、NSObject
注:OC中数组和字典只能存储OC对象不能存放基本数据类型. NSNumber NSNumber可以用来把一个基本数据类型包装成一个NSNumber类型的对象. NSNumber *number = [ ...
- NSDate 时间
NSDate *date=[NSDate date]; NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; formatter.date ...
随机推荐
- iOS 7.1 安装 企业应用 提示 无法下载应用程序
首先这种情况排除https影响,这个就不提了.请自行查询iOS https 部署. 其次系统版本是iOS 7.1,之后的版本安装都没问题. 说下我是怎么发现问题的,我找了个真机,发现直接调试提示bun ...
- EF Attach时已存在的处理方式
如果我们在先前的步骤中读取过数据,如 var list = db.Model.ToList(); 之后再,附加 var o = new Model { Id = 1 }; db.Model.Attac ...
- 初涉SQL Server性能问题(2/4):列出等待资源的会话
在初涉SQL Server性能问题(1/4)里,我们知道了如何快速检查服务器实例上正运行的任务数和IO等待的任务数.这个是轻量级的脚本,不会给服务器造成任何压力,即使服务器在高负荷下,也可以正常获得结 ...
- 关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】
最近一直用ASP.NET MVC 4.0 +LINQ TO SQL来开发设计公司内部多个业务系统网站,在这其中发现了一些问题,也花了不少时间来查找相关资料或请教高人,最终都还算解决了,现在我将这些问题 ...
- mysql一个事务中有DDL语句的binlog情况
在autocommit=1的情况下,开启一个事务,如果里面有DDL语句,那么事务开始到DDL语句之间的DML语句都会被提交.再开启新的事务.可以从binlog中看出 session语句: 09 ...
- servlet中的细节
Get方法有大小限制:1024个字符.这些信息使用 Query_String头传递,并通过Query_String环境变量访问.Post方法:请求体信息使用FromData头传递.读取所有表单参数:g ...
- jsckson,想说爱你不容易啊。。。406错误
最近使用spring4.0的Mvc,json请求时,客户端报错,406 Not Acceptable 解决方法一: 1.导入第三方的jackson包,jackson-mapper-asl-1.9.7. ...
- 2015年最热门前端框架React 入门实例教程
现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑. React 起源于 Face ...
- AEAI Portal V3.5.2门户集成平台发版说明
AEAI Portal门户集成平台为数通畅联的核心产品,本着分享传递的理念,数通畅联将Portal_server.Portal_portlet两个项目开源,目的在于满足客户与伙伴的OEM需求,以及为广 ...
- ASP.NET MVC4 数据库连接(EF6.0)
我的博客原文地址:http://www.star110.com/Note/ReadArticle/60641215331146140041.html 环境:.NET MVC4 + EF6.0 连接数据 ...