NSDate为日期时间类对象,简单操作:
注意:直接NSLog输出NSDate对象,默认是以0时区为标准,因此会比北京时间少8小时
1.将Date格式转换为自定义格式的字符串格式
// 自定义Date时间日期格式 // 创建日期时间对象 NSDate *date = [NSDate date]; // 借助日期时间对象格式化对象 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 定义要显示的时间日期格式 HH:表示24小时格式 hh:表示12小时格式 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 将时间日期格式转化为字符串 NSString *str = [formatter stringFromDate:date]; NSLog(@"%@",str); // 输出:2014-03-22 14:01:52
2.将字符串格式转换为date格式
// 将字符串转化为Date对象格式 NSString *str = @"2012/11/11 17:58:00"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy/MM/dd HH:mm:ss"; NSDate *date = [formatter dateFromString:str]; NSLog(@"%@",date); // 输出: 2012-11-11 09:58:00 +0000
3.NSDate的一些其他方法
// 创建日期时间对象 NSDate *date =[NSDate date]; // 输出默认就是当前时间 但是时间默认的是0时区的时间 因此比北京时间少8小时 NSLog(@"%@",date); // 创建的日期时间对象date2 比 date少5秒 NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date]; // 计算从1970年0点到date2总共过了多少秒 // 返回类型是NSTimeInterval // 系统定义 typedef double NSTimeInterval; 可以看出它其实就是double类型 因此seconds不用加 * NSTimeInterval seconds = [date2 timeIntervalSince1970]; // date2的时间和现在时间(也就是代码执行时间)相隔多少秒 NSTimeInterval seconds2 = [date2 timeIntervalSinceNow];