您的位置:首页 > 移动开发 > IOS开发

iOS开发OC基础:OC中日期类NSDate类的常用方法

2014-05-30 16:35 507 查看
因为OC中的一些方法的使用比较简单,所以代码比较少,我会把完整的代码贴到这里,如果代码过多,我会考虑上传工程附件。
今天来介绍一下NSDate类的常用方法,可以帮助大家理解日期类的基本用法,因为所有的解释说明都放在了代码的注释里,大家可以参照着看,也可以拷贝到工程里进行运行查看。

main.h中的全部代码为:
#import <Foundation/Foundation.h>

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

@autoreleasepool {

//1.创建NSDate对象
//通过date创建对象拿到的是0时区的时刻,本地的时刻还需加8个小时
NSDate *date1 = [NSDate date];
NSLog(@"%@", date1);

//2.创建一个NSDate对象,让它表示明天此时的时刻
//从当前时刻开始,加上给定的时间间隔
//NSTimeInterval 是一个时间间隔,时间间隔是以秒为单位的
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:24 * 60 * 60];
NSLog(@"%@", date2);

//3.创建NSDate对象,表示昨天此时的时刻
NSDate *date3 = [NSDate dateWithTimeIntervalSinceNow:- 24 * 60 * 60];
NSLog(@"%@", date3);

//4.获得两个指定时刻的时间间隔NSTimeInterval
NSTimeInterval interval1 = [date2 timeIntervalSinceDate:date3];
NSLog(@"%.2f", interval1 / 24 / 60 /60);

//5.输出日期格式
//创建一个日期格式类的对象
NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
//设置日期的格式

//设置当前时区
[formatter1 setTimeZone:[NSTimeZone localTimeZone]];
//月用大写的MM,小时大写HH表示24小时制
//        [formatter1 setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
//(1)设置日期的风格,日期的样式
[formatter1 setDateStyle:NSDateFormatterFullStyle];
//(2)设置时间的风格,时间的样式
[formatter1 setTimeStyle:NSDateFormatterLongStyle];

//将日期转为字符串
NSString *dateString1 = [formatter1 stringFromDate:date1];
NSLog(@"%@", dateString1);

//6.通过时间间隔初始化NSDate对象
//获得当前时间和1970.1.1时间间隔
NSDate *date5 = [NSDate dateWithTimeIntervalSince1970:0];
NSTimeInterval interval2 = [date1 timeIntervalSinceDate:date5];
NSLog(@"%.2f", interval2 / 365 / 24 / 60 / 60);
//根据时间间隔以及给定的1970.1.1获得指定的时间
NSDate *date4 = [NSDate dateWithTimeInterval:interval2 sinceDate:date5];
NSLog(@"%@", date4);

//创建日期格式对象
NSDateFormatter *formatter3 = [[NSDateFormatter alloc] init];
//设置转化的日期格式,一定要和给定的日期字符串格式相同
[formatter3 setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
//将日期格式串按照日期格式转化为NSDate对象
NSDate *date6 = [formatter3 dateFromString:@"2014年05月01日 10点23分24秒"];
NSLog(@"%@", date6);

}
return 0;
}


这是我在学习的过程中总结的一些方法,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息