NSDate的使用方法及步骤(比较两个日期的前后)
2016-02-29 17:22
435 查看
NSDate这个类接触的时候很像Java中Date,所以很多方法似乎都是一样,只是名字不同而已。
下面是几个典型时间操作:
1、系统时间按照设定的格式以字符串形式输出:
2、给时间字符串转化为设定格式输出的时间:
3、创建时间对象的方法
方法实在太多,很难一一举例,往往都是实践的时候再找文档,所以就写到这里,内容很浅显,希望对你有帮助!
补充:比较两个日期的前后
下面是几个典型时间操作:
1、系统时间按照设定的格式以字符串形式输出:
// 创建一个时间对象 NSDate *date = [NSDatedate]; // (PS:刚开始的时候很多人觉得时间不对,其实date的时间是0时区的时间,而中国在(北京-东8区),相差8个小时,所以把系统时间的小时加上8,就是中国北京的时间了) // 日期格式化类 NSDateFormatter *formatter = [[NSDateFormatteralloc] init]; // 设置时间格式 formatter.dateFormat =@"yyyy-MM-dd HH:mm:ss"; /* y年 M月 d日 H(24小时制)时 h(12小时制)时 m分 s秒 */ // 时间转为字符串 NSString *str = [formatter stringFromDate:date]; NSLog(@"%@",str);
2、给时间字符串转化为设定格式输出的时间:
// 将字符串转化为时间 NSString *str2 =@"2012/03/09 22:38:17"; // 日期格式化类 NSDateFormatter *formatter2 = [[NSDateFormatteralloc] init]; // 设置时间格式 formatter2.dateFormat =@"yyyy/MM/dd HH:mm:ss"; // 字符串转为时间 NSDate *date2 = [formatter2 dateFromString:str2]; NSLog(@"%@",date2);
3、创建时间对象的方法
// 创建一个时间对象的方法 NSDate *date1 = [NSDatedate]; NSLog(@"%@",date1); //这个方法表示:从date1的时间开始,返回3600秒即一个小时时间后的时间 NSDate *date2 = [NSDatedateWithTimeInterval:3600sinceDate:date1]; NSLog(@"%@",date2); /* 2015-09-07 20:46:28.379 NSDate[1599:173993] 2015-09-07 12:46:28 +0000 2015-09-07 20:46:28.380 NSDate[1599:173993] 2015-09-07 13:46:28 +0000 */ //这个方法表示:从1970年1月1日 00:00:00的时间开始,返回3600秒即一个小时时间后的时间 NSDate *date3 = [NSDatedateWithTimeIntervalSince1970:3600]; NSLog(@"%@",date3); // 2015-09-07 20:49:07.912 NSDate[1607:177220] 1970-01-01 01:00:00 +0000 //这个方法表示:从2001年1月1日 00:00:00的时间开始,返回3600秒即一个小时时间后的时间 NSDate *date4 = [NSDatedateWithTimeIntervalSinceReferenceDate:3600]; NSLog(@"%@",date4); //这个方法表示:从现在的时间开始,返回3600秒即一个小时时间后的时间 NSDate *date5 = [NSDatedateWithTimeIntervalSinceNow:3600]; NSLog(@"%@",date5);
方法实在太多,很难一一举例,往往都是实践的时候再找文档,所以就写到这里,内容很浅显,希望对你有帮助!
补充:比较两个日期的前后
+(int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy"]; NSString *oneDayStr = [dateFormatter stringFromDate:oneDay]; NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay]; NSDate *dateA = [dateFormatter dateFromString:oneDayStr]; NSDate *dateB = [dateFormatter dateFromString:anotherDayStr]; NSComparisonResult result = [dateA compare:dateB]; NSLog(@"date1 : %@, date2 : %@", oneDay, anotherDay); if (result == NSOrderedDescending) { //NSLog(@"Date1 is in the future"); return 1; } else if (result == NSOrderedAscending){ //NSLog(@"Date1 is in the past"); return -1; } //NSLog(@"Both dates are the same"); return 0; }
相关文章推荐
- Jenkins启动项目后台进程自动杀掉
- 压缩ZIP
- Xcode菜单快捷键
- Android-将RGB彩色图转换为灰度图
- 《从零开始学Swift》学习笔记(Day 14)——字符串的插入、删除和替换
- 原创翻译:James Whittaker系列——Google是如何测试的(4)
- 17.UITextView
- 实例解析linux内核I2C体系结构(一)
- nginx(一)基础安装配置
- 初次使用git管理代码~后续使用过程中遇到的问题汇总
- Leet Code OJ 101. Symmetric Tree [Difficulty: Easy]
- hdu1016Prime Ring Problem
- 【分布式存储】GlusterFS failing to mount at boot with Ubuntu 14.04
- 企业链表模型——业务实体和底层链表算法分离
- 17个新手常见Python运行时错误
- 诊断 Grid Infrastructure 启动问题 (文档 ID 1623340.1)
- 如何防止客户端被破解
- 小米粒儿的CSDN博客开启啦~~
- Struts2的声明式异常处理
- Android分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?