直接上代码:
/*
* NSDate
*
*/
//NSDate类创建的对象永远都是零时区(格林尼治标准时间)的时间对象,通过+date便利构造器创建的时间对象表示了当前时间
//GMT 格林尼治标准时间
NSDate *newDate = [NSDate date] ;
NSLog( @"%@", newDate );
//这个便利构造器方法是通过系统当前时间以及给定的时间片段推算出新的时间
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow: * ] ;
NSLog( @"%@", date1 ) ;
//根据给定的时间片段推算距离零时区2001年1月1日零点的时间(注意:闰年)
NSDate *date2 = [NSDate dateWithTimeIntervalSinceReferenceDate: * * ] ;
NSLog( @"%@", date2 ) ;
//根据给定的时间片段(时间戳)推算距离零时区1970年1月1日零点的时间(注意:闰年)
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970: * * * ] ;
NSLog( @"%@", date3 ) ;
//获取两个时间对象中较早的时间
NSDate *earlierDate = [date2 earlierDate:date3] ;
NSLog( @"%@", earlierDate ) ;
//获取两个时间对象中较晚的时间
NSDate *laterDate = [date3 laterDate:date2] ;
NSLog( @"%@", laterDate ) ;
//判断两个日期对象是否相同
BOOL result = [date2 isEqualToDate:date3] ;
NSLog( @"%@", result ? @"YES" : @"NO" ) ;
//当前时间距离1970年1月1日的时间片段
NSTimeInterval timeInterval = [newDate timeIntervalSince1970] ;
NSLog( @"%f", timeInterval ) ;
NSLog( @"%.2f", timeInterval ) ;
/*
* NSDateFormatter
*
* 使用时间格式化类,可以将时间转成指定的格式
*/
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
//设置日期的样式
[formatter setDateStyle:(NSDateFormatterMediumStyle)] ;
//设置时间样式
[formatter setTimeStyle:(NSDateFormatterMediumStyle)] ;
//设置对应时区信息
NSArray *names = [NSTimeZone knownTimeZoneNames] ;
NSLog( @"%@", names ) ;
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/shanghai"]] ;
//通过指定格式的字符串来格式化时间
[formatter setDateFormat:@"yyy-MM-dd a hh:mm:ss"] ;
NSString *timeString = [formatter stringFromDate:newDate] ;
NSLog( @"%@", timeString ) ;
//日期格式化类
NSLog( @"%@", [formatter dateFromString:@"2015-04-09 下午 12:08:31"] ) ;