/*spa
*獲取當前系統時間的時間戳3d
*/code
+(NSInteger)getNowTimestamp;component
/**orm
* 獲取當前時間對象
*/blog
+ (NSString *)getNowTimeTampFormat:(NSString *)tampFormat;ci
/*字符串
*時間戳轉時間get
*format (@"YYYY-MM-dd hh:mm:ss") ----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
*/
+(NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format;
/*
*時間戳轉時間(時間的前一天)
*format (@"YYYY-MM-dd hh:mm:ss") ----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
*/
+(NSString *)timestampSwitchlastTime:(NSInteger)timestamp andFormatter:(NSString *)format;
/*
*時間戳轉時間
*formatTime 時間字符串
*format (@"YYYY-MM-dd hh:mm:ss") ----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
*/
+ (NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format;
/*
*某日和當前日期相隔多少天
*/
+ (NSInteger)getDifferenceByDate:(NSString *)date;
/**
*日期格式請傳入:2013-08-05 12:12:12;若是修改日期格式,好比:2013-08-05,則將[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];修改成[df setDateFormat:@"yyyy-MM-dd"];
*/
+(int)compareDate:(NSString*)date01 withDate:(NSString*)date02;
+(NSInteger)getNowTimestamp{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
//設置時區,這個對於時間的處理有時很重要
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
NSDate *datenow = [NSDate date];//如今時間
// NSLog(@"設備當前的時間:%@",[formatter stringFromDate:datenow]);
//時間轉時間戳的方法:
NSInteger timeSp = [[NSNumber numberWithDouble:[datenow timeIntervalSince1970]] integerValue];
// NSLog(@"設備當前的時間戳:%ld",(long)timeSp); //時間戳的值
return timeSp;
}
+ (NSString *)getNowTimeTampFormat:(NSString *)tampFormat {
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:tampFormat];
NSString *DateTime = [formatter stringFromDate:date];
return DateTime;
}
//將某個時間戳轉化成 時間
#pragma mark - 將某個時間戳轉化成 時間
+(NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
//十三位時間戳轉時間須要/1000 十位時間戳你不須要
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timestamp / 1000];
NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];
// NSLog(@"&&&&&&&confromTimespStr = : %@",confromTimespStr);
return confromTimespStr;
}
/*
*時間戳轉時間(時間的前一天)
*format (@"YYYY-MM-dd hh:mm:ss") ----------設置你想要的格式,hh與HH的區別:分別表示12小時制,24小時制
*/
+(NSString *)timestampSwitchlastTime:(NSInteger)timestamp andFormatter:(NSString *)format {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
//十三位時間戳轉時間須要/1000 十位時間戳你不須要
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timestamp / 1000];
NSDate *lastDay = [NSDate dateWithTimeInterval:(-24*60*60)*2 sinceDate:confromTimesp];//前兩天
NSString *confromTimespStr = [formatter stringFromDate:lastDay];
return confromTimespStr;
}
//將某個時間轉化成 時間戳
#pragma mark - 將某個時間轉化成 時間戳
+ (NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
NSDate* date = [formatter dateFromString:formatTime]; //------------將字符串按formatter轉成nsdate
//時間轉時間戳的方法:
NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue];
// NSLog(@"將某個時間轉化成 時間戳&&&&&&&timeSp:%ld",(long)timeSp); //時間戳的值
return timeSp;
}
+ (NSInteger)getDifferenceByDate:(NSString *)date {
//得到當前時間
// NSDate *now = [NSDate date];
// //實例化一個NSDateFormatter對象
// NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// //設定時間格式
// [dateFormatter setDateFormat:@"YYYY-MM-dd"];
// NSDate *oldDate = [dateFormatter dateFromString:date];
// NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
// unsigned int unitFlags = NSDayCalendarUnit;
// NSDateComponents *comps = [gregorian components:unitFlags fromDate:oldDate toDate:now options:0];
// return [comps day];
//
//下面這種方法從00:00:00開始計算
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setFirstWeekday:2];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd"];
NSDate *fromDate;
NSDate *toDate;
[gregorian rangeOfUnit:NSDayCalendarUnit startDate:&fromDate interval:NULL forDate:[dateFormatter dateFromString:date]];
[gregorian rangeOfUnit:NSDayCalendarUnit startDate:&toDate interval:NULL forDate:[NSDate date]];
NSDateComponents *dayComponents = [gregorian components:NSDayCalendarUnit fromDate:fromDate toDate:toDate options:0];
#pragma clang diagnostic pop
return [dayComponents day];
}
+(int)compareDate:(NSString*)date01 withDate:(NSString*)date02 {
int ci;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *dt1 = [[NSDate alloc] init];
NSDate *dt2 = [[NSDate alloc] init];
dt1 = [df dateFromString:date01];
dt2 = [df dateFromString:date02];
NSComparisonResult result = [dt1 compare:dt2];
switch (result) {
//date02比date01大
case NSOrderedAscending: ci=1; break;
//date02比date01小
case NSOrderedDescending: ci=-1; break;
//date02=date01
case NSOrderedSame: ci=0; break;
default: NSLog(@"erorr dates %@, %@", dt2, dt1); break;
}
return ci;
}