//NSDate
NSDate *now = [NSDate date];
NSLog(@"%@", now);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];//哪个时区
//m:秒minute M:月份month aa:上下午 HH:24小时 hh:12小时制
//DataFormat 约定时间的格式
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss aa"];
NSLog(@"%@", [formatter stringFromDate:now]);
[formatter release];
//将NSDate转换成字符串
//Formatter转换成对应时区的格式,NSdate不分时区,均已标准时区为准
NSDateFormatter *f1 = [[NSDateFormatter alloc] init]; [f1 setTimeZone:[NSTimeZone defaultTimeZone]]; //f1是系统当前时间
[f1 setDateFormat:@"yyyy"]; //f1指定输出
//f1转换成指定格式
NSString *yearString = [f1 stringFromDate:now];
int year = [yearString intValue];
NSLog(@"%d", year);
[f1 release];
//将字符串转换成NSDate
NSString *dateString = @"1999-9-9 9:9:9";
NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
[f2 setTimeZone:[NSTimeZone defaultTimeZone]];
[f2 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate * date = [NSDate date];
date = [f2 dateFromString:dateString];
NSLog(@"%@", date);
//输出所有时区
NSLog(@"%@", [NSTimeZone knownTimeZoneNames ]);
//用 America/Whitehorse 时区输出dateString
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"America/Whitehorse"];
[f2 setTimeZone:zone];
NSDate *sDate = [f2 dateFromString:dateString];
NSLog(@"%@", sDate);
[f2 release];
//计算明天的时间
NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24]; //时间流失的秒数
NSDateFormatter *f3 = [[NSDateFormatter alloc] init];
[f3 setTimeZone:[NSTimeZone defaultTimeZone]];
[f3 setDateFormat:@"yyyy-MM-dd hh:mm:ss aa"];
NSLog(@"%@", [f3 stringFromDate:tomorrow]);
[f3 release];
//计算昨天的时间
NSDate *yesterDay = [NSDate dateWithTimeIntervalSinceNow:- 60 * 60 * 24];
NSDateFormatter *f4 = [[NSDateFormatter alloc] init];
[f4 setTimeZone:[NSTimeZone defaultTimeZone]];
[f4 setDateFormat:@"yyyy-MM-dd hh:mm:ss aa"];
NSLog(@"%@", [f4 stringFromDate:yesterDay]);
[f4 release];
//计算昨天到明天一共间隔多少秒
//NSTimeInterval是double类型
NSTimeInterval interval = [tomorrow timeIntervalSinceDate:yesterDay];
NSLog(@"%f", interval);
NSLog(@"%g", interval); //去掉多余的零
//计算当前时间和⼀一个固定时间的差值,如果差值在60秒内,输出“刚 刚”,如果在60秒外3600秒内,输出“xx分钟前”,如果3600秒外, 3600*24秒内,输出“xx⼩小时前”。 (聊天记录的时间轴)
NSString *sometimeString = @"2015-2-5 17:15:00";
NSDateFormatter *f5 = [[NSDateFormatter alloc] init];
[f5 setTimeZone:[NSTimeZone defaultTimeZone]];
[f5 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *sometime = [f5 dateFromString:sometimeString];
NSTimeInterval inter = ABS([sometime timeIntervalSinceNow]);
if (inter < 60) {
NSLog(@"刚刚");
} else if (inter < 3600){
NSLog(@"%d分钟前", (int)inter / 60);
} else {
NSLog(@"%d小时前", (int)inter / 60 / 60);
}
[f5 release];
NSString *s = @"2014年05月01日 10点23分18秒";
NSDateFormatter *f6 = [[NSDateFormatter alloc] init];
[f6 setTimeZone:[NSTimeZone defaultTimeZone]];
[f6 setDateFormat:@"yyyy MM dd HH mm ss"];
NSDate *dt = [f6 dateFromString:s];
NSLog(@"%@", dt);
[f6 release];
NSDate *dt1 = [NSDate dateWithdateString:@"20150205124856"];
NSLog(@"%@", dt1);
//Extension(延展)
/*
Person *person = [[Person alloc] init];
[person sayHi];
[person gotoBed];
*/