作品鏈接:http://www.lxweimin.com/users/1e0f5e6f73f6/top_articles
1.NSString *轉(zhuǎn) NSDate *
方法1.中國(guó)時(shí)間格式
// 時(shí)間字符串
NSString *string = @"2016-7-16 09:33:22";
// 日期格式化類
NSDateFormatter *format = [[NSDateFormatter alloc] init];
// 設(shè)置日期格式 為了轉(zhuǎn)換成功
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// NSString * -> NSDate *
NSDate *data = [format dateFromString:string];
NSString *newString = [format stringFromDate:data];
方法2.混雜格式
// 時(shí)間字符串
NSString *string = @"7月-16/2016 09:33:22秒";
// 日期格式化類
NSDateFormatter *format = [[NSDateFormatter alloc] init];
// 設(shè)置日期格式 為了轉(zhuǎn)換成功
format.dateFormat = @"MM月-dd-yyyy HH:mm:ss秒";
NSLog(@"%@",[format dateFromString:string]);
方法3.國(guó)際時(shí)間格式
// 時(shí)間字符串
NSString *string = @"Tue May 31 17:46:55 +0800 2016 ";
// 日期格式化類
NSDateFormatter *format = [[NSDateFormatter alloc] init];
// 設(shè)置日期格式 為了轉(zhuǎn)換成功
format.dateFormat = @"EEE-MMM-dd HH:mm:ss Z yyyy";
//設(shè)置語(yǔ)言區(qū)域(因?yàn)檫@種時(shí)間是歐美常用時(shí)間)
format.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
方法4.時(shí)間戳格式
// 時(shí)間戳 : 從1970年1月1號(hào) 00:00:00開(kāi)始走過(guò)的毫秒數(shù)
NSString *string = @"1287879863267";
// 獲得有多少秒
NSTimeInterval second = string.longLongValue / 1000.0;
// 時(shí)間戳->NSDate
NSDate *date = [NSDate dateWithTimeIntervalSince1970:second];
1.NSDate *轉(zhuǎn) NSString *
方法1.datatostring
NSDate *date = [NSDate date];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy年MM月dd號(hào) HH:mm:ss";
NSString *string = [format stringFromDate:date];
方法2.獲取元素
NSString *string = @"016-07-16 21:16:26";
NSString *month = [string substringWithRange:NSMakeRange(5, 2)];
方法3.利用NSCalendar處理日期獲取元素
NSString *string = @"2016-7-16 09:33:22";
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *data = [format dateFromString:string];
//利用NSCalendar處理日期
NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger mouth = [calendar component:NSCalendarUnitMonth fromDate:data];
NSInteger hour = [calendar component:NSCalendarUnitHour fromDate:data];
NSInteger minute = [calendar component:NSCalendarUnitMinute fromDate:data];
NSInteger second = [calendar component:NSCalendarUnitSecond fromDate:data];
方法4 獲取多位元素
NSString *string = @"2016-7-16 09:33:22";
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date = [format dateFromString:string];
//利用NSCalendar處理日期
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitSecond|NSCalendarUnitMinute;
NSDateComponents *components = [calendar components:unit? fromDate:date];
NSLog(@"%@",components);
3.時(shí)間比較
方法1.時(shí)間比較
// 時(shí)間字符串
NSString *createdAtString = @"2015-11-20 11:10:05";
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createdAtDate = [format dateFromString:createdAtString];
// 手機(jī)當(dāng)前時(shí)間
NSDate *nowDate = [NSDate date];
/**
NSComparisonResult的取值
NSOrderedAscending = -1L, // 升序, 越往右邊越大
NSOrderedSame,? // 相等
NSOrderedDescending // 降序, 越往右邊越小
*/
// 獲得比較結(jié)果(誰(shuí)大誰(shuí)小)
NSComparisonResult result = [nowDate compare:createdAtDate];
if (result == NSOrderedAscending) { // 升序, 越往右邊越大
NSLog(@"createdAtDate > nowDate");
} else if (result == NSOrderedDescending) { // 降序, 越往右邊越小
NSLog(@"createdAtDate < nowDate");
} else {
NSLog(@"createdAtDate == nowDate");
}
方法2.時(shí)間比較時(shí)間相差多少
// 時(shí)間字符串
NSString *createdAtString = @"2016-7-16 09:33:22";
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createdAtDate = [format dateFromString:createdAtString];
// 手機(jī)當(dāng)前時(shí)間
//NSDate *nowDate = [NSDate date];
// 獲得createdAtDate和nowDate的時(shí)間間隔(間隔多少秒)
//NSTimeInterval interval = [nowDate timeIntervalSinceDate:createdAtDate];
NSTimeInterval interval = [createdAtDate timeIntervalSinceNow];
方法3.時(shí)間比較兩個(gè)時(shí)間比較
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *createdAtString = @"2016-7-16 09:33:22";
NSDate *createdAtDate = [format dateFromString:createdAtString];
// 其他時(shí)間
NSString *otherString =@"2016-7-16 21:53:22";
NSDate *otherDate = [format dateFromString:otherString];
// 獲得NSCalendar
NSCalendar *calendar = nil;
if ([NSCalendar respondsToSelector:@selector(calendarWithIdentifier:)]) {
calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
}else{
calendar = [NSCalendar currentCalendar];
}
// 獲得日期之間的間隔
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *components = [calendar components:unit fromDate:createdAtDate toDate:otherDate options:0];
NSLog(@"%@",components);
方法4.與當(dāng)前時(shí)間比較是否為同一天
if ([NSCalendar respondsToSelector:@selector(calendarWithIdentifier:)]) {
calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
}else{
calendar = [NSCalendar currentCalendar];
}
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSLog(@"%zd",[calendar isDateInToday:[format dateFromString:@"2016-7-16 09:33:22"]]);