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)