iOS中NSDate常用轉換操作整合

原文出處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;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容