NSDate常用方法

    /*=============================NSDate日期类的使用=============================*/

    // 获取当前时间,获得的时0市区的时间跟北京时间相差8小时
NSDate *currentDate = [NSDate date]; // GMT
NSLog(@"currentDate :%@",currentDate); //timeIntervalSince1970 到1970-1-1的秒数,也叫时间戳(NSTimeInterval)
NSTimeInterval interval1970 = [currentDate timeIntervalSince1970];
NSLog(@"interval = %lf",interval1970); // timeIntervalSinceReferenceDate 到2001-1-1 的秒数
NSTimeInterval interval2001 = [currentDate timeIntervalSinceReferenceDate];
NSLog(@"interval2001 = %lf",interval2001); // timeIntervalSinceNow 距当前时间的秒数
NSTimeInterval intervalNow = [currentDate timeIntervalSinceNow];
NSLog(@"intervalNow = %lf",intervalNow); NSTimeInterval hour = * ;
// 一小时后
NSDate *h1 = [currentDate dateByAddingTimeInterval:hour];
NSLog(@"h1 :%@",h1); // 一小时前
NSDate *h2 = [currentDate dateByAddingTimeInterval:-hour];
NSLog(@"h2 :%@",h2); // 计算北京时区时间,(使用系统当前的时区:systemTimeZone)
NSTimeInterval inter = [[NSTimeZone systemTimeZone] secondsFromGMT];
NSDate *bjDate = [currentDate dateByAddingTimeInterval:inter];
NSLog(@"bjDate :%@",bjDate); NSTimeInterval day = * * ;
// 方式一:
// NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-day];
// 方式二: // 昨天
NSDate *yesterday = [bjDate dateByAddingTimeInterval:-day];
NSLog(@"yesterday:%@",yesterday); // 今天
NSDate *today = [bjDate dateByAddingTimeInterval:];
NSLog(@"today:%@",today); // 明天
NSDate *tomorrow = [bjDate dateByAddingTimeInterval:day];
NSLog(@"tomorrow:%@",tomorrow); // isEqualToDate 两个日期的比较
if ([yesterday isEqualToDate:tomorrow]) { NSLog(@"两个日期相同"); } else { NSLog(@"两个日期不相同"); } // compare 两个日期的比较
NSComparisonResult result = [yesterday compare:tomorrow];
if (result == NSOrderedAscending) { NSLog(@"日期升序"); } else if(result == NSOrderedSame) { NSLog(@"两个日期相同"); } else if(result == NSOrderedDescending) { NSLog(@"两个日期降序");
} //distantFuture 未来的一个时间 4001-01-01 00:00:00
NSDate *future = [NSDate distantFuture];
NSLog(@"future :%@",future);
//distantPast 远古的一个时间 0001-12-30 00:00:00
NSDate *past = [NSDate distantPast];
NSLog(@"past :%@",past); // dateWithTimeIntervalSince1970 将时间戳转为日期类型
NSString *time = @"";
NSDate *timeDate = [NSDate dateWithTimeIntervalSince1970:[time doubleValue]];
NSLog(@"timeDate :%@",timeDate); NSDate *now = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"]; // 2014年10月15日 16:35:42
// stringFromDate 将日期类型格式化,转为NSString 类型
NSString *current = [formatter stringFromDate:now];
NSLog(@"current:%@",current); //dateFromString 将时间字符串转化为日期类型,
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:]]; // 默认使用0时区,所以需要时区的转换
NSDate *nowDate = [formatter dateFromString:current];
NSLog(@"nowDate :%@",nowDate);

本文GitHub地址:https://github.com/zhangkiwi/iOS_SN_NSDate

iOS-OC-基础-NSDate常用方法的更多相关文章

  1. OC基础 NSDate

    OC基础  NSDate #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @auto ...

  2. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  3. iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误

    在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...

  4. OC基础笔记目录

    OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...

  5. iOS 面试基础题目

    转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...

  6. ios+oc面试题

    ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...

  7. OC基础16:复制对象

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...

  8. OC基础8:分类和协议

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.关于分类(category): (1) ...

  9. 【IOS学习基础】NSObject.h学习

    一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...

  10. OC基础回想(十二)协议

    在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...

随机推荐

  1. with 与 debugger

    with在严格模式下是禁止使用的,而debugger是在调试模式下才有效果的,目测作者自己在用的脚本压缩工具在有dubugger语句的情况下会影响压缩结果,导致失败. with(varible)实际上 ...

  2. 【译】神经网络与深度学习 Ch1-Section0

    用神经网络识别手写数字 人类的视觉系统是是大自然的奇迹.考虑下面手写数字序列: 大多数人能够轻易地是识别出是504192.在我们大脑的每个半球都有一个基础的皮质,这就是我们熟知的V1区,它包含了14亿 ...

  3. php正则验证手机号码

    protected function checkphone(){ if(preg_match("/^1[34578]\d{9}$/", $phone)){ return false ...

  4. 优化PHP代码的40条建议(转载)

    [size=5][color=Red](译文)优化PHP代码的40条建议[/color][/size] 40 Tips for optimizing your php Code 原文地址:http:/ ...

  5. 基于cygwin构建u-boot(五)结尾:shell 工具

    结尾,基于cygwin对u-boot的处理,很大一部分都是再处理 路径等相关的问题,只有一个涉及到gcc的参数配置. 为了达到顺利编译的目的,使用shell下的部分工具进行处理. 1.sed sed简 ...

  6. YII CDbCriteria总结

    $criteria = new CDbCriteria; //$criteria->alias = 't';  //查询该表 $criteria->addInCondition('id', ...

  7. 关于box-sizing

    http://www.zhangxinxu.com/css3/css3-box-sizing.php box-sizing:border-box; -o-box-sizing:border-box; ...

  8. Codeforces 245H Queries for Number of Palindromes

    http://codeforces.com/contest/245/problem/H 题意:给定一个字符串,每次给个区间,求区间内有几个回文串(n<=5000) 思路:设定pd[i][j]代表 ...

  9. 自定义JsonResult处理JSON序列化DateTime类型数据(Ext4.2+ASP.NET MVC 4)

    最近项目中前台页面使用Extjs4.2 ,在后台ASP.NET MVC4返回的DateTime类型的数据错返回的DateTime类型的JsonResult的结果中的值是“\/Date(13784461 ...

  10. windows phone因为墓碑化导致“正在恢复”的分析

    我们在平时的WP使用过程中,会遇到一个问题 应用在切出,切回后, 有时候,会显示"正在恢复",并等待时间较长,才能回到用户切出时候的画面,但是这种情况并非常见,偶尔发生 有时候,直 ...