Objective-C(十四、NSDate类及日期格式化类NSDateFormatter)——iOS开发基础

结合之前的学习笔记以及参考《Objective-C编程全解(第三版)》,对Objective-C知识点进行梳理总结。知识点一直在变,只是作为参考,以苹果官方文档为准~

十四、NSDate类,时间类

注意:下面的所提及的方法都是常用方法,全部列出不大现实,参考Xcode帮助文档即可~

1、时间戳
某一日期到1970年的秒数大小
获取时间戳

 NSDate *date = [NSDate date];
 NSLog(@"%@", date);
 NSTimeInterval time = [date timeIntervalSince1970];
 NSLog(@"%lf", time);

output:

 2015-07-07 10:12:12 +0000
 1436263932.742765

注意:创建date当前时间点的日期对象,是格林威治时间0时区的时间

2、常用方法
a、创建类方法

 + (instancetype)date;
 + (instancetype)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;
 + (instancetype)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti;
 + (instancetype)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;

b、昨天,今天,明天

 NSTimeInterval time = 24*60*60;
 NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-time];
 NSDate *today = [[NSDate alloc] initWithTimeIntervalSinceNow:0];
 NSDate *tomorrow = [[NSDate alloc] initWithTimeIntervalSinceNow:time];
 NSLog(@"%@,%@,%@",yesterday,today,tomorrow);

output:

2015-07-06 13:28:43 +0000,2015-07-07 13:28:43 +0000,2015-07-08 13:28:43 +0000

3、日期格式化类 NSDateFormatter
(1)创建及初始化

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

(2)设置显示格式

 formatter.dateFormat = @"yyyy/MM/dd HH:mm:ss";
  • d:7
  • dd:07
  • M:7
  • MM:07
  • MMM:7月
  • MMMM:七月
  • yy:15
  • yyyy:2015
  • h:12小时制,6
  • hh:12小时制,06
  • HH:24小时制,6
  • HH:24小时制,18
  • m,mm,s,ss都是有无前导0的区别

4、时区NSTimeZone

 NSArray *zoneNames = [NSTimeZone knownTimeZoneNames];
 NSLog(@"%@", zoneNames);

可以通过此语句通过查看有哪些时区

 NSDate *date = [NSDate date];
 NSLog(@"%@", date);

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 formatter.dateFormat = @"yyyy/MM/dd HH:mm:ss";
 NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"America/New_York"];
 formatter.timeZone = timeZone;
// 时间转换字符串
 NSString *dateString = [formatter stringFromDate:date];
 NSLog(@"%@", dateString);

output:

 2015-07-07 10:44:08 +0000
 2015/07/07 06:44:08

你可能感兴趣的:(日期格式化,oc,NSDate,ios开发基础,NSTimeZone)