1映胁、兩種方法
1 傳統(tǒng)方法
NSDate *nowDate = [NSDate date]; // 當(dāng)前日期
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH-mm-ss";
NSDate *creat = [formatter dateFromString:(任意時(shí)間)];// 將傳入的字符串轉(zhuǎn)化成時(shí)間
NSTimeInterval delta = [nowDate timeIntervalSinceDate:creat]; // 計(jì)算出相差多少秒
//打印結(jié)果格式為 delta ==== 181078.541819
2 便捷方法
NSDate *nowDate = [NSDate date]; // 當(dāng)前時(shí)間
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH-mm-ss";
NSDate *creat = [formatter dateFromString:creat_time]; // 傳入的時(shí)間
// 這里有個(gè)需要注意的地方,不要將時(shí)間戳的字符串直接作為creat_time 翻具,如果是時(shí)間戳,那么
NSString *timeString = @"1532754000"; // 時(shí)間戳字符串
NSTimeInterval time=[timeString doubleValue]/1000;//傳入的時(shí)間戳str如果是精確到毫秒的記得要/1000 (注意: 這句話不要全盤復(fù)制回还,如果傳入的時(shí)間戳沒有精確到毫秒不要除1000)
NSDate *creat =[NSDate dateWithTimeIntervalSince1970:time];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *compas = [calendar components:unit fromDate:creat toDate:nowDate options:0];
NSLog(@"year=%zd month=%zd day=%zd hour=%zd minute=%zd",compas.year,compas.month,compas.day,compas.hour,compas.minute);
2.封裝一些簡(jiǎn)單實(shí)用的方法裆泳,NSDate的分類
import "NSDate+Extension.h"
#import <Foundation/Foundation.h>
@interface NSDate (Extension)
/**
*傳入時(shí)間與當(dāng)前時(shí)間的差值
*/
- (NSDateComponents *)deltaFrom:(NSDate *)date;
/**
*是否為今年
*/
- (BOOL)isThisYear;
/**
*是否為今天
*/
- (BOOL)isToday;
/**
*是否為昨天
*/
- (BOOL)isYestoday;
/**
*返回只有年月日的時(shí)間
*/
- (NSDate *)dateWithYMD;
import "NSDate+Extension.m"
#import "NSDate+Extension.h"
@implementation NSDate (Extension)
- (NSDateComponents *)deltaFrom:(NSDate *)date{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *compas = [calendar components:unit fromDate:self toDate:date options:0];
return compas;
}
- (BOOL)isThisYear{
// 日歷
NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]];
NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self];
return nowYear == selfYear;
}
// 第一種方法
//- (BOOL)isToday{
// // 日歷
// NSCalendar *calendar = [NSCalendar currentCalendar];
// NSCalendarUnit unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear;
// NSDateComponents *nowComp = [calendar components:unit fromDate:[NSDate date]];
// NSDateComponents *selfComp = [calendar components:unit fromDate:self];
// return nowComp.year == selfComp.year
// && nowComp.month == selfComp.month
// && nowComp.day == selfComp.day;
//}
// 第二種方法
- (BOOL)isToday{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd";
NSString *nowString = [formatter stringFromDate:[NSDate date]];
NSString *selfString = [formatter stringFromDate:self];
return nowString == selfString;
}
- (BOOL)isYestoday{
NSDate *nowDate = [[NSDate date] dateWithYMD];
NSDate *selfDate = [self dateWithYMD];
// 獲得nowDate和selfDate的差距、
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];
return cmps.day == 1;
}
- (NSDate *)dateWithYMD{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd";
NSString *selfString = [formatter stringFromDate:self];
return [formatter dateFromString:selfString];
}
@end
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者