iOS-OC-基础-NSDate常用方法
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常用方法的更多相关文章
- OC基础 NSDate
OC基础 NSDate #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @auto ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- iOS 面试基础题目
转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...
- ios+oc面试题
ios+oc面试题 浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...
- OC基础16:复制对象
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...
- OC基础8:分类和协议
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.关于分类(category): (1) ...
- 【IOS学习基础】NSObject.h学习
一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...
- OC基础回想(十二)协议
在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...
随机推荐
- oracle常用自定义函数集合
1.Oracle 判断值是否为数字的函数CREATE OR REPLACE FUNCTION ISNUMBER(MyStr VARCHAR2) RETURN NUMBERIS STR VARCHAR ...
- 【劳动节江南白衣Calvin 】我的后端开发书架2015
自从技术书的书架设定为”床底下“之后,又多了很多买书的空间.中国什么都贵,就是书便宜. 不定期更新,在碎片化的阅读下难免错评. 书架主要针对Java后端开发,书单更偏爱那些能用简短流畅的话,把少壮不努 ...
- Form 表单常用正则验证 (收藏)
1.^\d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9 ...
- hdu 1546 Idiomatic Phrases Game
http://acm.hdu.edu.cn/showproblem.php?pid=1546 #include <cstdio> #include <iostream> #in ...
- LeetCode_Distinct Subsequences
Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...
- PHP与C++的不同
由于工作需要,需要学习一下PHP,由于3年的C++背景,在刚开始学习PHP的过程中,有些不习惯,经过一段时间的学习,总结了一些PHP与C++的不同. 1.应用场景 在谈两种语言不同的时候,首先需要了解 ...
- EditText 文本内容输入限制
实现InputFilter过滤器,需要覆盖一个叫filter的方法. public abstract CharSequence filter ( CharSequence source, int st ...
- 主题简介 ASP .NET
由控件的外观.样式组成的集合,由一个文件组构成,存放在App_Themes文件夹下. 主题包括:皮肤文件(.Skin).CSS文件(.CSS).图片.其它资源等. 主题的作用:统一设置Web页面的外观 ...
- 谷歌Cartographer学习(2)-原理阐述与源码解析
最近终于写完了毕业论文.想仔细研究下Cartographer.无奈自己学识有限,先看下网上大牛的解析,作一个汇总. 一.泡泡机器人原创专栏-cartographer理论及实践浅析 http://mp. ...
- 修改UISearchBar背景色
//iOS7.1 [[[[_searchBar.subviews objectAtIndex:] subviews] objectAtIndex:] removeFromSuperview]; [_s ...