【OC加强】NSDate的使用方法——日期时间在实际开发中比較有用

简介:

(1)日期的最主要知识点就是日期转换成字符串格式化输出,相反就是依照某个格式把字符串转换成日期。


(2)一般关于时区的设置非常少用到,仅仅要了解就可以。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    @autoreleasepool {
        //获取当前时间。日期正确。时间错误,是由于时区的设置问题,可是格式化输出用HH:mm:ss貌似是正常的
        NSDate *date1=[NSDate date];
        NSLog(@"%@",date1);
        //想获得昨天此时此刻的时间,则须要用到减法,先把秒算出来,然后减去就可以,不多addTimeInterval方法已经被禁止使用了
        //NSTimeInterval *oneDay=24*60*60;
        //NSDate *yesterday1=[date1 addTimeInterval:-oneDay];
        
        //比較两个时间
        NSDate *date2=[NSDate date];
        [date1 isEqualToDate:date2];
        
        //取时间较早的那个
        [date2 earlierDate:date1];
        
        //取较晚的那个
        [date2 laterDate:date1];
        
        //格式化日期。事实上就是利用一个日期格式化对象把日期转换成字符串了
        //先定义一个NSDateFormatter对象。然后给这个格式对象定义成自己想要的格式,然后用它去转化其它日期就可以
        NSDateFormatter *format1=[[NSDateFormatter alloc]init];
        [format1 setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
        NSString *str1=[format1 stringFromDate:date1];
        NSLog(@"%@",str1);
        
        //把字符串转换成日期
        //和上边相似。仍然须要日期格式化对象,可是调用的方法从stringFromDate变成
        //由于时区设置的问题。这个日期被减去了一天
        NSDateFormatter *format2=[[NSDateFormatter alloc]init];
        [format2 setDateFormat:@"yyyy/MM/dd"];
        NSString *str2=@"2014/10/11";
        NSLog(@"%@",[format2 dateFromString:str2]);
        
        //直接输出当前时间date1时又时区错误。而用格式化后就正常了
        NSDateFormatter *format3=[[NSDateFormatter alloc]init];
        [format3 setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
        //下面语句能够省略,假设把GTM变成UTC的话,就会存在时差问题,究竟是哪一种。届时依据实际情况改动
        [format3 setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GTM"]];
        NSLog(@"%@",[format3 stringFromDate:date1]);
        //当然,我们能够手动设置时区
    }
    return 0;
}








本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5065508.html,如需转载请自行联系原作者

相关文章
|
7月前
|
设计模式 Rust JavaScript
【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数
【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数
88 0
|
3月前
|
API Windows
MASM32编程将TimeStamp/UTC转换为具体日期时间的几个有用函数代码
MASM32编程将TimeStamp/UTC转换为具体日期时间的几个有用函数代码
|
3月前
|
前端开发 JavaScript
前端基础(十五)_时间对象、字符串对象
本文介绍了JavaScript中时间对象的操作方法,包括获取和设置年、月、日、小时、分钟、秒等,以及如何格式化时间显示,同时提及了字符串对象的常用方法。
32 0
前端基础(十五)_时间对象、字符串对象
|
2月前
|
开发者 Python
Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
15 0
|
6月前
|
Windows
VBA的直接或间接调用的语法格式
VBA|过程或方法内部的直接或间接调用与相对怪异的语法格式
|
6月前
|
Java API
JavaSE——常用API进阶二(3/8)-Date、SimpleDateFormat(构造器、常用的方法、用法示例、时间格式的常见符号)
JavaSE——常用API进阶二(3/8)-Date、SimpleDateFormat(构造器、常用的方法、用法示例、时间格式的常见符号)
28 1
|
5月前
|
JavaScript 前端开发
js/javascript 操作时间日期【全】含时间日期的创建、获取、比较、计算、格式化、时间戳、昨天、今天、星期汉化、计时、相关插件等
js/javascript 操作时间日期【全】含时间日期的创建、获取、比较、计算、格式化、时间戳、昨天、今天、星期汉化、计时、相关插件等
110 0
|
7月前
|
Go Unix 开发者
Go语言time库,时间和日期相关的操作方法
Go语言time库,时间和日期相关的操作方法
102 0
Go语言time库,时间和日期相关的操作方法
|
JavaScript 前端开发
带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(2)
带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(2)
|
存储 JavaScript 前端开发
带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(1)
带你读《现代Javascript高级教程》二十三、Date类:日期和时间处理(1)