/* NSDateFormatter的作用 1.NSString -> NSDate 2.NSDate -> NSString */ void fmt_date_to_string(); void fmt_string_to_date(); void fmt_string_to_date2(); void fmt_timestamp_to_date3(); int main(int argc, const char * argv[]) { @autoreleasepool { // 2015-10-01 14:38:40 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate *createdAtDate = [fmt dateFromString:@"2015-9-15 23:59:59"]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSLog(@"%d", [calendar isDateInTomorrow:createdAtDate]); } return 0; } void calendar_interval_between_date() { // 获得系统当前时间 NSDate *nowDate = [NSDate date]; // 服务器返回的时间字符串 NSString *createdAtString = @"2014-02-20 10:49:54"; // 创建一个日期格式化对象 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 设置日期格式 fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // NSString -> NSDate NSDate *createdAtDate = [fmt dateFromString:createdAtString]; // 计算createdAtDate和nowDate的时间间隔 NSCalendar *calendar = [NSCalendar currentCalendar]; NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; NSDateComponents *cmps = [calendar components:unit fromDate:createdAtDate toDate:nowDate options:0]; NSLog(@"%@", cmps); } /** * 获得某个NSDate对象的所有日期元素 : 年月日时分秒 */ void get_components_of_date() { // 获得系统当前时间 NSDate *nowDate = [NSDate date]; // 日历对象 NSCalendar *calendar = [NSCalendar currentCalendar]; NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; NSDateComponents *cmps = [calendar components:unit fromDate:nowDate]; NSLog(@"%@", cmps); // NSInteger year = [calendar component:NSCalendarUnitYear fromDate:nowDate]; // NSInteger minute = [calendar component:NSCalendarUnitMinute fromDate:nowDate]; // NSLog(@"%zd %zd", year, minute); // NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // // 设置日期格式 // fmt.dateFormat = @"HH"; // NSString *string = [fmt stringFromDate:nowDate]; // NSLog(@"%@", string); } /** * 2个NSDate之间的时间差值 */ void date_interval() { // 获得系统当前时间 NSDate *nowDate = [NSDate date]; // 服务器返回的时间字符串 NSString *createdAtString = @"2015-10-16 10:49:54"; // 创建一个日期格式化对象 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 设置日期格式 fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // NSString -> NSDate NSDate *createdAtDate = [fmt dateFromString:createdAtString]; // 计算createdAtDate和nowDate之间相隔的秒数 NSTimeInterval interval = [nowDate timeIntervalSinceDate:createdAtDate]; NSLog(@"%f", interval); // 3600 / 60 = 60 // 60 /60 = 1 } /** * timestamp -> NSDate */ void fmt_timestamp_to_date3() { // 时间戳 : 从1970年1月1日0点0分0秒开始经历的毫秒数 NSInteger timestamp = 1114548435435; NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp / 1000.0]; NSLog(@"%@", date); } /** * NSString -> NSDate */ void fmt_string_to_date2() { // 服务器返回的时间字符串 NSString *string = @"Tue May 31 17:46:55 +0800 2011"; // 创建一个日期格式化对象 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 解析欧美格式的日期字符串, 得设置语言类型为en_US fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; // 设置日期格式 fmt.dateFormat = @"EEE MMM dd HH:mm:ss ZZZZ yyyy"; NSDate *date = [fmt dateFromString:string]; NSLog(@"%@", date); } /** * NSString -> NSDate */ void fmt_string_to_date() { // 服务器返回的时间字符串 NSString *string = @"2015-10-16 10:49:54"; // 创建一个日期格式化对象 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 设置日期格式 fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate *date = [fmt dateFromString:string]; NSLog(@"%@", date); } /** * NSDate -> NSString */ void fmt_date_to_string() { // 获得系统当前时间 NSDate *now = [NSDate date]; // 创建一个日期格式化对象 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 设置日期格式 : 2015年10月10日 15时56分30秒 // 年(year) : y // 月(month) : M // 日(day) : d // 时(hour) : H(24小时制)\h(12小时制) // 分(minute) : m // 秒(second) : s // 时区(zone) : Z fmt.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒"; // NSDate -> NSString NSString *nowString = [fmt stringFromDate:now]; NSLog(@"----- %@", nowString); }