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

原创 2015年07月07日 21:34:24

结合之前的学习笔记以及参考《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
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/zsk_zane

iOS 时间格式化

时间转换字符串转时间iOS 中 NSDate 是时间管理类,这里获取到的时间是 UTC 时间,可以根据需要转换成任意地区的时间。 NSFormatter 类是时间格式化类,可以根据指定的格式、地区将...
  • kaiyuanheshang
  • kaiyuanheshang
  • 2015年11月20日 19:02
  • 1636

iOS 日期格式化, NSDateFormatter,把服务器返回的时间,格式化为时间戳

G: 公元时代,例如AD公元 yy: 年的后2位 yyyy: 完整年 MM: 月,显示为1-12 MMM: 月,显示为英文月份简写,如 Jan MMMM: 月,显示为英文月份全称,如 Janualy ...
  • loumzy
  • loumzy
  • 2015年12月27日 15:36
  • 2097

关于NSDateFormat

1.关于NSDateFormat属性dateFormat的制定。 The followering is an offical example: NSDateFormat *dateFormat= ...
  • junlaiyan
  • junlaiyan
  • 2015年03月23日 14:58
  • 635

NSDate格式化输出

NSString *dateStr, *fileName;     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];...
  • aini9080
  • aini9080
  • 2014年09月17日 13:53
  • 754

iOS中NSDate常用转换操作整合

iOS 中NSDate转换操作整合
  • feng2qing
  • feng2qing
  • 2017年02月10日 21:17
  • 786

iOS开发:NSDate时区与格式化问题

今天做到DatePicker,一个按钮弹出选择的日期时间,默认的NSDate Date的显示的是格林威治标准时间GMT,在中国肯定不适用,所以要转换为中国时区+8,然后也接触到ios中的日期时间格式化...
  • fancylovejava
  • fancylovejava
  • 2015年03月08日 22:04
  • 4888

iOS NSDateFormatter日期时间格式处理的用法

最近在做新浪rss新闻xml解析过程中,遇到一个时间字符串转换的问题。 问题是:Wed, 3 Apr 2013 04:11:02 GMT (这个数据是在xml文件中获取的)要在这个字符串中截取出04...
  • Crayon_DyS
  • Crayon_DyS
  • 2013年04月03日 13:03
  • 18588

ios 时区,时间格式NSDate

在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题。这里集中总结一下,以便于以后查阅和供大家参考。...
  • sqc3375177
  • sqc3375177
  • 2016年12月13日 13:53
  • 3586

iOS关于NSDate、NSString、NSDateFormatter设置时间格式等问题

1 获取当前时间 // 当前时间 NSDate *now = [NSDate date]; // 获取时间中的详细信息年、月、日、时、分、秒 NSCalendar *calendar = [NSCal...
  • u011746179
  • u011746179
  • 2014年01月05日 15:01
  • 2913

Objective-C(十二、快速枚举,枚举器NSEnumerator和集合类NSSet)——iOS开发基础

快速枚举,枚举器NSEnumerator和集合类NSSet的介绍和常用方法
  • Zsk_Zane
  • Zsk_Zane
  • 2015年07月04日 15:27
  • 1687
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C(十四、NSDate类及日期格式化类NSDateFormatter)——iOS开发基础
举报原因:
原因补充:

(最多只允许输入30个字)