NSDate和NSDateFormatter

Posted ybn-juan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSDate和NSDateFormatter相关的知识,希望对你有一定的参考价值。

定义一个当前日期的NSDate对象

NSDate *currentDate = [NSDate date];

NSDate常用方法

  • 以已有NSDate对象实例为基准,定义一个表示一小时后的NSDate对象:
[NSDate dateWithTimeInterval:3600 sinceDate:currentDate] -> NSDate

以下统一写成消息闭包的形式,单位默认为秒,负号则表示早于目标日期。

  • 以当前时间为基准,定义一个表示一小时前的NSDate对象:
[NSDate dateWithTimeIntervalSinceNow:-3600] -> NSDate
  • 获取目标日期到Unix元年的秒数:
[targetDate timeIntervalSince1970] -> float

这么直白的方法名还是第一次见

  • 获取目标日期到当前日期的秒数:
[targetDate timeIntervalSinceNow] -> float
  • 判断两个日期是否相等:
[date1 isEqualToDate:date2] -> BOOL

NSDateFormatter的使用

  • 初始化:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  • 设置日期显示风格
[formatter setDateStyle:NSDateFormatterFullStyle];
  • 设置时间显示风格
[formatter setTimeStyle:NSDateFormatterMediumStyle];
  • 设置显示语言为简体中文
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh-CN"]];
  • 格式化日期和时间显示
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  • NSDate转NSString
[formatter stringFromDate:currentDate] -> NSString

也可以用含有日期格式的字符串生成NSDate对象:[formatter dateFromString:dateString] -> NSDate
但日期字符串的格式必须与使用的NSDateFormatter对象通过setDateFormat方法设置的日期格式一致。

以上是关于NSDate和NSDateFormatter的主要内容,如果未能解决你的问题,请参考以下文章

NSDate NSDateFormatter

关于NSDate和NSDateFormatter的几个常用方法

NSDateFormatter 和 NSDateComponents 的输出 NSDate 之间的区别

iOS NSDate,NSDateFormatter,NSTimeZone,NSTimeInterval

如何使用 nsdateformatter 将 nsdate 转换为另一种格式

Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)