原文出處http://blog.csdn.net/feng2qing/article/details/54974128
//當前時間格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss+ (NSString*)getCurrentDataWithDateFormate:(NSString*)formate
{NSDate*now = [NSDatedate];return[selfdateFormattingWithDate:now toFormate:formate];
}//任意NSDate格式化+ (NSString*)dateFormattingWithDate:(NSDate*)date toFormate:(NSString*)formate
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:formate];return[formatter stringFromDate:date];
}//獲取當天0點時間+ (NSDate*)returnToDay0Clock
{NSDate*now = [NSDatedate];NSCalendar*calender = [NSCalendarcurrentCalendar];
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *dateComponent = [calender components:unitFlags fromDate:now];inthour = (int)[dateComponent hour];intminute = (int)[dateComponent minute];intsecond = (int)[dateComponent second];//當前時分秒:hour,minute,second//返回當前時間(hour * 3600 + minute * 60 + second)之前的時間,即為今天凌晨0點NSDate*nowDay = [NSDatedateWithTimeIntervalSinceNow: - (hour *3600+ minute *60+ second)];longlonginter = [nowDay timeIntervalSince1970] *1000;NSDate*newDate = [NSDatedateWithTimeIntervalSince1970:inter /1000];returnnewDate;
}//獲取當天24點時間+ (NSDate*)returnToDay24Clock
{NSDate*now = [NSDatedate];NSCalendar*calender = [NSCalendarcurrentCalendar];
NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *dateComponent = [calender components:unitFlags fromDate:now];inthour = (int)[dateComponent hour];intminute = (int)[dateComponent minute];intsecond = (int)[dateComponent second];//一天是60分鐘 * 60秒 * 24小時 = 86400秒NSDate*nextDay = [NSDatedateWithTimeIntervalSinceNow: - (hour *3600+ minute *60+ second) +86400];returnnextDay;
}//獲取當前秒數+ (longlong)getCurrentDateSecond
{return[[NSDatedate] timeIntervalSince1970];
}//NSDate轉秒+ (longlong)dateTosecond:(NSDate*)date
{return[date timeIntervalSince1970];
}//秒轉NSDate+ (NSDate*)secondToDate:(longlong)second
{return[NSDatedateWithTimeIntervalSince1970:second];
}//是否是12小時制; YES:12小時制 / NO:24小時制+ (BOOL)is12HourSystem
{NSString*formatStringForHour = [NSDateFormatter dateFormatFromTemplate:@"j"options:0locale:[NSLocale autoupdatingCurrentLocale]];NSRangecontains = [formatStringForHour rangeOfString:@"a"];BOOLis12HourSystem = contains.location!=NSNotFound;returnis12HourSystem;
}//朋友圈/聊天 時間顯示樣式+ (NSString*)dateDisplayResult:(longlong)secondCount
{NSDate*date = [selfsecondToDate:secondCount];NSCalendar*calender = [NSCalendarcurrentCalendar];//判斷是否是今天if([calender isDateInToday:date]) {longlongdateSecondCount = [[NSDatedate] timeIntervalSinceDate:date];if(dateSecondCount <60) {return@"剛剛";
}if(dateSecondCount < (60*60)) {return[NSStringstringWithFormat:@"%d分鐘前",(int)(dateSecondCount /60)];
}return[NSStringstringWithFormat:@"%d小時前",(int)(dateSecondCount / (60*60))];
}//判斷是否是昨天NSString*formatterString = @" HH:mm";if([calender isDateInYesterday:date]) {
formatterString = [@"昨天"stringByAppendingString:formatterString];
}else{//判斷是否是一年內formatterString = [@"MM-dd"stringByAppendingString:formatterString];//判斷是否值一年之前NSDateComponents *component = [calender components:NSCalendarUnitYear fromDate:date toDate:[NSDatedate] options:NSCalendarWrapComponents];if(component.year>=1) {
formatterString = [@"YYYY-"stringByAppendingString:formatterString];
}
}
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:formatterString];
formatter.locale= [NSLocale localeWithLocaleIdentifier:@"en"];return[formatter stringFromDate:date];
}//比較兩個NsDate對象的時間差+ (CompareResult *)compareDateDifferenceDate1:(NSDate*)date1 date2:(NSDate*)date2
{
CompareResult *result = [[CompareResult alloc] init];
result.value= (fabs([date1 timeIntervalSinceDate:date2]));
result.trend= [date1 compare:date2];returnresult;
}