/**
* 获得当前系统时间
*
* 默认为yyyy-MM-dd HH:mm:ss格式
*/
+ (NSDate *)getCurrentSystemDate {
NSDate *senddate = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *locationString=[dateformatter stringFromDate:senddate];
return [dateformatter dateFromString:locationString];
}
/**
* 获得某个时间上加day天
*/
- (NSDate *)getDateByAddDay:(NSInteger)day {
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = day;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
return [theCalendar dateByAddingComponents:dayComponent toDate:self options:0];
}
/**
* 获得某个时间这个星期的第一天
*
* @param weekStartIndex 以星期几开始为第一天
*/
- (NSDate *)getWeekStartDateWithStartIndex:(NSInteger)weekStartIndex {
NSUInteger weekDay = [[self getWeekNumber] integerValue];
NSInteger gap = (weekStartIndex <= weekDay) ? weekDay : ( 7 + weekDay );
NSInteger day = weekStartIndex - gap;
return [self getDateByAddDay:day];
}
/**
* 获得某个时间是星期几
*
* @return 星期几
*/
- (NSNumber *)getWeekNumber {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:NSWeekdayCalendarUnit fromDate:self];
return [NSNumber numberWithInteger:([comps weekday] - 1)];
}
/**
* 获得某个时间是周几
*
* @return 格式:(周日、周一)
*/
-(NSString *)getWeekString {
static NSDateFormatter *weekFormatter;
if(!weekFormatter){
weekFormatter = [[NSDateFormatter alloc] init];
NSLocale *en_AU_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
[weekFormatter setLocale:en_AU_POSIX];
[weekFormatter setDateFormat:@"E"];
}
NSString *temp = [weekFormatter stringFromDate:self];
NSString *newWeek = nil;
if ([temp containsString:@"周"]) {
newWeek = [temp stringByReplacingOccurrencesOfString:@"周" withString:@""];
}else {
newWeek = temp;
}
return newWeek;
}
/**
* 获取月和日
*
* @return 格式:12月8
*/
- (NSString *)getMonthAndDayString {
static NSDateFormatter *dateFormatter;
if(!dateFormatter){
dateFormatter = [[NSDateFormatter alloc] init];
NSLocale* en_AU_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:en_AU_POSIX];
[dateFormatter setDateFormat:@"M月d"];
}
return [dateFormatter stringFromDate:self];
}
/**
* 暂时不知道什么意思
*
* @return 返回年月日
*/
- (NSDate *)midnightDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *components = [calendar components:unitFlags fromDate:self];
return [calendar dateFromComponents:components];
}
/**
* 判断两个时间是否相等
*
* @return YES/NO
*/
- (BOOL)isSameWithDate:(NSDate *)date{
NSDate *date1 = [self midnightDate];
NSDate *date2 = [date midnightDate];
BOOL isSame = [date1 isEqualToDate:date2];
return isSame;
}
/**
* 判断某个时间小于当前时间或小于等于当前时间
*
* @param flag flag(YES:小于当前时间/NO:小于等于当前时间)
*
* @return YES/NO
*/
- (BOOL)isLessOrEqualToDayByBOOL:(BOOL)flag {
NSDate *nowDate = [NSDate getCurrentSystemDate];
if (!flag) {
//返回当前时间一天后的时间
nowDate = [NSDate dateWithTimeIntervalSinceNow:24 * 60 * 60];
}
//earlierDate:获取较早的日期
if([[nowDate earlierDate:self] isEqualToDate:self]) {
return YES;
} else {
return NO;
}
}
/**
* 判断某个时间大于当前时间或大于等于当前时间
*
* @param flag flag(YES:大于当前时间/NO:大于等于当前时间)
*
* @return YES/NO
*/
- (BOOL)isGreaterOrEqualByBOOL:(BOOL)flag{
NSDate *nowDate = [NSDate getCurrentSystemDate];
if (!flag) {
nowDate = [NSDate dateWithTimeIntervalSinceNow: - 24 * 60 * 60];
}
//laterDate:获取较晚的日期
if([[nowDate laterDate:self] isEqualToDate:self]) {
return YES;
} else {
return NO;
}
}
/**
* 判断某个时间大于当前时间加上day天得时间或大于等于当前时间加上day天得时间
*
* @param day 当前时间加上day天
*
* @param flag flag(YES:大于当前时间加上day天得时间/NO:大于等于当前时间加上day天得时间)
*
* @return YES/NO
*/
- (BOOL)isGreaterOrEqualByDay:(NSUInteger)day withBool:(BOOL)flag {
NSDate *nowDate = [NSDate getCurrentSystemDate];
nowDate = [nowDate getDateByAddDay:day];
if (!flag) {
nowDate = [NSDate dateWithTimeIntervalSinceNow: - 24 * 60 * 60];
}
//laterDate:获取较晚的日期
if([[nowDate laterDate:self] isEqualToDate:self]) {
return YES;
} else {
return NO;
}
}
/**
* 判断某个时间是否在某个时间段
*
* @param earlierDate 较早的时间
* @param laterDate 较晚的时间
*
* @return YES/NO
*/
- (BOOL)isInTimeSlot:(NSDate *)earlierDate toDate:(NSDate *)laterDate {
NSTimeInterval timeInterval = [[self midnightDate] timeIntervalSince1970];
NSTimeInterval earlierTimeInterval = [[earlierDate midnightDate] timeIntervalSince1970];
NSTimeInterval laterimeInterval = [[laterDate midnightDate] timeIntervalSince1970];
BOOL isWithinDate = (timeInterval >= earlierTimeInterval && timeInterval <= laterimeInterval);
return isWithinDate;
}
/**
* 获取对象的字符串类型
*/
+ (NSString *)stringForId:(id)object {
NSString *str = (NSString *)object;
if (str == nil) return @"";
if (str == NULL) return @"";
if ([str isKindOfClass:[NSNull class]]) return @"";
str = [NSString stringWithFormat:@"%@",str];
return str;
}
/**
* 时间戳转换为NSDate
*/
+ (NSDate *)getDateForTimeIntervalString:(NSString *)interval {
interval = [self stringForId:interval]; // 强转字符串
if (interval.length == 13) { // Jave类型时间戳
NSTimeInterval timeInterval = [interval doubleValue] / 1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
return date;
} else if (interval.length == 10) { // PHP类型时间戳
NSTimeInterval timeInterval = [interval doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
return date;
} else {
NSTimeInterval timeInterval = [interval doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
return date;
}
return nil;
}
/**
* Date转"时间戳"字符串(0.PHP类型-10位 1.Jave-13位)
*/
+ (NSString *)getTimeIntervalForDate:(NSDate *)date byType:(NSInteger)type {
NSTimeInterval time;
if (type == 1) {
time = [date timeIntervalSince1970] * 1000;
}else {
time = [date timeIntervalSince1970];
}
NSString *returnTime = [NSString stringWithFormat:@"%f",time];
if (returnTime.length > 13) {
returnTime = [returnTime substringToIndex:13];
}
return returnTime;
}
/**
* Date 转换 NSString
* (自定义 默认格式:@"yyyy-MM-dd HH:mm:ss")
*/
+ (NSString *)getStringForDate:(NSDate *)date format:(NSString *)format {
if (format == nil) format = @"yyyy-MM-dd HH:mm:ss";
// 实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// 设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:format];
// 用[NSDate date]可以获取系统当前时间
NSString *currentDateStr = [dateFormatter stringFromDate:date];
return currentDateStr;
}
/**
* 火星时间转地球时间
*
* @param string
*
* @return 月.日
*/
+ (NSString *)getTimeMD:(NSString *)string{
if (![string isEqualToString:@""]) {
NSDate *date =[NSDate dateWithTimeIntervalSince1970:[string doubleValue]/1000];
//1.创建时间格式器
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
//2.设置格式器的格式
//注意格式的设置:yyyy代表年 MM代表月 dd代表日 hh代表12小时的小时(HH代表24小时) mm代表分 ss代表秒
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setDateFormat:@"M.dd"];
NSString* dateString = [dateFormatter stringFromDate:date];
return dateString;
}else{
return @"";
}
return @"";
}
+ (NSString *)getTimeYMD:(NSString *)string
{
if (![string isEqualToString:@""]) {
NSDate *date =[NSDate dateWithTimeIntervalSince1970:[string doubleValue]/1000];
//1.创建时间格式器
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
//2.设置格式器的格式
//注意格式的设置:yyyy代表年 MM代表月 dd代表日 hh代表12小时的小时(HH代表24小时) mm代表分 ss代表秒
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString* dateString = [dateFormatter stringFromDate:date];
return dateString;
}else{
return @"";
}
return @"";
}
+ (NSDateComponents *)getDateComponentsWithDate:(NSDate *)date {
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *component = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit |
NSWeekdayCalendarUnit |
NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit;
component = [calendar components:unitFlags fromDate:date];
return component;
}
+ (NSString *)getTimeyMdHm:(NSString *)string
{
if (![string isEqualToString:@""]) {
NSDate *date =[NSDate dateWithTimeIntervalSince1970:[string doubleValue]/1000];
//1.创建时间格式器
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
//2.设置格式器的格式
//注意格式的设置:yyyy代表年 MM代表月 dd代表日 hh代表12小时的小时(HH代表24小时) mm代表分 ss代表秒
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSString* dateString = [dateFormatter stringFromDate:date];
return dateString;
}else{
return @"";
}
return @"";
}
/** 获取当前时间的“时间戳” -- 默认13位 */
+ (NSString *)getTimeIntervalStringByNew {
NSDate *date = [NSDate date];
NSString *returnTime = [self getTimeIntervalForDate:date byType:1];
return returnTime;
}
/**
* 时间戳 直接转成 NSString (自定义 默认格式:@"yyyy-MM-dd HH:mm:ss")
*/
+ (NSString *)getStringForTimeIntervalString:(NSString *)interval format:(NSString *)format {
NSDate *date = [self getDateForTimeIntervalString:interval];
return [self getStringForDate:date format:format];
}
/**
* NSString 转换 Date(自定义 默认格式:@"yyyy-MM-dd HH:mm:ss")
*/
+ (NSDate *)getDateForString:(NSString *)string format:(NSString *)format {
if (format == nil) format = @"yyyy-MM-dd HH:mm:ss";
//实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:format];
return [dateFormatter dateFromString:string];
}
/**
* 获取两个时间的时间差,返回秒数
*/
+ (NSInteger)getTimeDifferenceForDate:(NSDate *)date1 reduce:(NSDate *)date2 {
NSTimeInterval interval1 = [date1 timeIntervalSinceNow];
NSTimeInterval interval2 = [date2 timeIntervalSinceNow];
return fabs(interval1 - interval2);
}
/**
* 获得与当前时间的时间差
*/
+ (NSInteger)getTimeDifferenceCurrDateForDate:(NSDate *)date {
NSDate *curDate = [NSDate getCurrentSystemDate];
return [self getTimeDifferenceForDate:curDate reduce:date];
}
/**
* 根据秒数获得相应的描述
*/
+ (NSString *)getDescribeForTimeInterval:(NSInteger)interval {
NSString *describeStr = @"";
if (interval < 60) {
describeStr = [NSString stringWithFormat:@"%zd秒", interval];
}else if (interval / 60 < 60) {
describeStr = [NSString stringWithFormat:@"%zd分钟", interval / 60];
}else if (interval / (60 * 60) < 24) {
describeStr = [NSString stringWithFormat:@"%zd小时", interval / (60 * 60)];
}else {
describeStr = [NSString stringWithFormat:@"%zd天", interval / (60 * 60 * 24)];
}
return describeStr;
}
+ (NSString *)getTimeMonthWithType:(NSString *)type andInterval:(NSString *)interval{
NSString *monthStr = [self getStringForTimeIntervalString:interval format:@"MM"];
if (1 == [type integerValue]) {
return [NSString stringWithFormat:@"%zd",[monthStr integerValue]];
}
NSString *currentMonth = [self getStringForDate:[NSDate date] format:@"MM"];
if ([currentMonth isEqualToString:monthStr]) {
return @"本";
}
switch ([monthStr integerValue]) {
case 1:
return @"一";
break;
case 2:
return @"二";
break;
case 3:
return @"三";
break;
case 4:
return @"四";
break;
case 5:
return @"五";
break;
case 6:
return @"六";
break;
case 7:
return @"七";
break;
case 8:
return @"八";
break;
case 9:
return @"九";
break;
case 10:
return @"十";
break;
case 11:
return @"十一";
break;
case 12:
return @"十二";
break;
default:
break;
}
return nil;
}
* 获得当前系统时间
*
* 默认为yyyy-MM-dd HH:mm:ss格式
*/
+ (NSDate *)getCurrentSystemDate {
NSDate *senddate = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *locationString=[dateformatter stringFromDate:senddate];
return [dateformatter dateFromString:locationString];
}
/**
* 获得某个时间上加day天
*/
- (NSDate *)getDateByAddDay:(NSInteger)day {
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = day;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
return [theCalendar dateByAddingComponents:dayComponent toDate:self options:0];
}
/**
* 获得某个时间这个星期的第一天
*
* @param weekStartIndex 以星期几开始为第一天
*/
- (NSDate *)getWeekStartDateWithStartIndex:(NSInteger)weekStartIndex {
NSUInteger weekDay = [[self getWeekNumber] integerValue];
NSInteger gap = (weekStartIndex <= weekDay) ? weekDay : ( 7 + weekDay );
NSInteger day = weekStartIndex - gap;
return [self getDateByAddDay:day];
}
/**
* 获得某个时间是星期几
*
* @return 星期几
*/
- (NSNumber *)getWeekNumber {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [calendar components:NSWeekdayCalendarUnit fromDate:self];
return [NSNumber numberWithInteger:([comps weekday] - 1)];
}
/**
* 获得某个时间是周几
*
* @return 格式:(周日、周一)
*/
-(NSString *)getWeekString {
static NSDateFormatter *weekFormatter;
if(!weekFormatter){
weekFormatter = [[NSDateFormatter alloc] init];
NSLocale *en_AU_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
[weekFormatter setLocale:en_AU_POSIX];
[weekFormatter setDateFormat:@"E"];
}
NSString *temp = [weekFormatter stringFromDate:self];
NSString *newWeek = nil;
if ([temp containsString:@"周"]) {
newWeek = [temp stringByReplacingOccurrencesOfString:@"周" withString:@""];
}else {
newWeek = temp;
}
return newWeek;
}
/**
* 获取月和日
*
* @return 格式:12月8
*/
- (NSString *)getMonthAndDayString {
static NSDateFormatter *dateFormatter;
if(!dateFormatter){
dateFormatter = [[NSDateFormatter alloc] init];
NSLocale* en_AU_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:en_AU_POSIX];
[dateFormatter setDateFormat:@"M月d"];
}
return [dateFormatter stringFromDate:self];
}
/**
* 暂时不知道什么意思
*
* @return 返回年月日
*/
- (NSDate *)midnightDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *components = [calendar components:unitFlags fromDate:self];
return [calendar dateFromComponents:components];
}
/**
* 判断两个时间是否相等
*
* @return YES/NO
*/
- (BOOL)isSameWithDate:(NSDate *)date{
NSDate *date1 = [self midnightDate];
NSDate *date2 = [date midnightDate];
BOOL isSame = [date1 isEqualToDate:date2];
return isSame;
}
/**
* 判断某个时间小于当前时间或小于等于当前时间
*
* @param flag flag(YES:小于当前时间/NO:小于等于当前时间)
*
* @return YES/NO
*/
- (BOOL)isLessOrEqualToDayByBOOL:(BOOL)flag {
NSDate *nowDate = [NSDate getCurrentSystemDate];
if (!flag) {
//返回当前时间一天后的时间
nowDate = [NSDate dateWithTimeIntervalSinceNow:24 * 60 * 60];
}
//earlierDate:获取较早的日期
if([[nowDate earlierDate:self] isEqualToDate:self]) {
return YES;
} else {
return NO;
}
}
/**
* 判断某个时间大于当前时间或大于等于当前时间
*
* @param flag flag(YES:大于当前时间/NO:大于等于当前时间)
*
* @return YES/NO
*/
- (BOOL)isGreaterOrEqualByBOOL:(BOOL)flag{
NSDate *nowDate = [NSDate getCurrentSystemDate];
if (!flag) {
nowDate = [NSDate dateWithTimeIntervalSinceNow: - 24 * 60 * 60];
}
//laterDate:获取较晚的日期
if([[nowDate laterDate:self] isEqualToDate:self]) {
return YES;
} else {
return NO;
}
}
/**
* 判断某个时间大于当前时间加上day天得时间或大于等于当前时间加上day天得时间
*
* @param day 当前时间加上day天
*
* @param flag flag(YES:大于当前时间加上day天得时间/NO:大于等于当前时间加上day天得时间)
*
* @return YES/NO
*/
- (BOOL)isGreaterOrEqualByDay:(NSUInteger)day withBool:(BOOL)flag {
NSDate *nowDate = [NSDate getCurrentSystemDate];
nowDate = [nowDate getDateByAddDay:day];
if (!flag) {
nowDate = [NSDate dateWithTimeIntervalSinceNow: - 24 * 60 * 60];
}
//laterDate:获取较晚的日期
if([[nowDate laterDate:self] isEqualToDate:self]) {
return YES;
} else {
return NO;
}
}
/**
* 判断某个时间是否在某个时间段
*
* @param earlierDate 较早的时间
* @param laterDate 较晚的时间
*
* @return YES/NO
*/
- (BOOL)isInTimeSlot:(NSDate *)earlierDate toDate:(NSDate *)laterDate {
NSTimeInterval timeInterval = [[self midnightDate] timeIntervalSince1970];
NSTimeInterval earlierTimeInterval = [[earlierDate midnightDate] timeIntervalSince1970];
NSTimeInterval laterimeInterval = [[laterDate midnightDate] timeIntervalSince1970];
BOOL isWithinDate = (timeInterval >= earlierTimeInterval && timeInterval <= laterimeInterval);
return isWithinDate;
}
/**
* 获取对象的字符串类型
*/
+ (NSString *)stringForId:(id)object {
NSString *str = (NSString *)object;
if (str == nil) return @"";
if (str == NULL) return @"";
if ([str isKindOfClass:[NSNull class]]) return @"";
str = [NSString stringWithFormat:@"%@",str];
return str;
}
/**
* 时间戳转换为NSDate
*/
+ (NSDate *)getDateForTimeIntervalString:(NSString *)interval {
interval = [self stringForId:interval]; // 强转字符串
if (interval.length == 13) { // Jave类型时间戳
NSTimeInterval timeInterval = [interval doubleValue] / 1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
return date;
} else if (interval.length == 10) { // PHP类型时间戳
NSTimeInterval timeInterval = [interval doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
return date;
} else {
NSTimeInterval timeInterval = [interval doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
return date;
}
return nil;
}
/**
* Date转"时间戳"字符串(0.PHP类型-10位 1.Jave-13位)
*/
+ (NSString *)getTimeIntervalForDate:(NSDate *)date byType:(NSInteger)type {
NSTimeInterval time;
if (type == 1) {
time = [date timeIntervalSince1970] * 1000;
}else {
time = [date timeIntervalSince1970];
}
NSString *returnTime = [NSString stringWithFormat:@"%f",time];
if (returnTime.length > 13) {
returnTime = [returnTime substringToIndex:13];
}
return returnTime;
}
/**
* Date 转换 NSString
* (自定义 默认格式:@"yyyy-MM-dd HH:mm:ss")
*/
+ (NSString *)getStringForDate:(NSDate *)date format:(NSString *)format {
if (format == nil) format = @"yyyy-MM-dd HH:mm:ss";
// 实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// 设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:format];
// 用[NSDate date]可以获取系统当前时间
NSString *currentDateStr = [dateFormatter stringFromDate:date];
return currentDateStr;
}
/**
* 火星时间转地球时间
*
* @param string
*
* @return 月.日
*/
+ (NSString *)getTimeMD:(NSString *)string{
if (![string isEqualToString:@""]) {
NSDate *date =[NSDate dateWithTimeIntervalSince1970:[string doubleValue]/1000];
//1.创建时间格式器
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
//2.设置格式器的格式
//注意格式的设置:yyyy代表年 MM代表月 dd代表日 hh代表12小时的小时(HH代表24小时) mm代表分 ss代表秒
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setDateFormat:@"M.dd"];
NSString* dateString = [dateFormatter stringFromDate:date];
return dateString;
}else{
return @"";
}
return @"";
}
+ (NSString *)getTimeYMD:(NSString *)string
{
if (![string isEqualToString:@""]) {
NSDate *date =[NSDate dateWithTimeIntervalSince1970:[string doubleValue]/1000];
//1.创建时间格式器
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
//2.设置格式器的格式
//注意格式的设置:yyyy代表年 MM代表月 dd代表日 hh代表12小时的小时(HH代表24小时) mm代表分 ss代表秒
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString* dateString = [dateFormatter stringFromDate:date];
return dateString;
}else{
return @"";
}
return @"";
}
+ (NSDateComponents *)getDateComponentsWithDate:(NSDate *)date {
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *component = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit |
NSWeekdayCalendarUnit |
NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit;
component = [calendar components:unitFlags fromDate:date];
return component;
}
+ (NSString *)getTimeyMdHm:(NSString *)string
{
if (![string isEqualToString:@""]) {
NSDate *date =[NSDate dateWithTimeIntervalSince1970:[string doubleValue]/1000];
//1.创建时间格式器
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
//2.设置格式器的格式
//注意格式的设置:yyyy代表年 MM代表月 dd代表日 hh代表12小时的小时(HH代表24小时) mm代表分 ss代表秒
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSString* dateString = [dateFormatter stringFromDate:date];
return dateString;
}else{
return @"";
}
return @"";
}
/** 获取当前时间的“时间戳” -- 默认13位 */
+ (NSString *)getTimeIntervalStringByNew {
NSDate *date = [NSDate date];
NSString *returnTime = [self getTimeIntervalForDate:date byType:1];
return returnTime;
}
/**
* 时间戳 直接转成 NSString (自定义 默认格式:@"yyyy-MM-dd HH:mm:ss")
*/
+ (NSString *)getStringForTimeIntervalString:(NSString *)interval format:(NSString *)format {
NSDate *date = [self getDateForTimeIntervalString:interval];
return [self getStringForDate:date format:format];
}
/**
* NSString 转换 Date(自定义 默认格式:@"yyyy-MM-dd HH:mm:ss")
*/
+ (NSDate *)getDateForString:(NSString *)string format:(NSString *)format {
if (format == nil) format = @"yyyy-MM-dd HH:mm:ss";
//实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:format];
return [dateFormatter dateFromString:string];
}
/**
* 获取两个时间的时间差,返回秒数
*/
+ (NSInteger)getTimeDifferenceForDate:(NSDate *)date1 reduce:(NSDate *)date2 {
NSTimeInterval interval1 = [date1 timeIntervalSinceNow];
NSTimeInterval interval2 = [date2 timeIntervalSinceNow];
return fabs(interval1 - interval2);
}
/**
* 获得与当前时间的时间差
*/
+ (NSInteger)getTimeDifferenceCurrDateForDate:(NSDate *)date {
NSDate *curDate = [NSDate getCurrentSystemDate];
return [self getTimeDifferenceForDate:curDate reduce:date];
}
/**
* 根据秒数获得相应的描述
*/
+ (NSString *)getDescribeForTimeInterval:(NSInteger)interval {
NSString *describeStr = @"";
if (interval < 60) {
describeStr = [NSString stringWithFormat:@"%zd秒", interval];
}else if (interval / 60 < 60) {
describeStr = [NSString stringWithFormat:@"%zd分钟", interval / 60];
}else if (interval / (60 * 60) < 24) {
describeStr = [NSString stringWithFormat:@"%zd小时", interval / (60 * 60)];
}else {
describeStr = [NSString stringWithFormat:@"%zd天", interval / (60 * 60 * 24)];
}
return describeStr;
}
+ (NSString *)getTimeMonthWithType:(NSString *)type andInterval:(NSString *)interval{
NSString *monthStr = [self getStringForTimeIntervalString:interval format:@"MM"];
if (1 == [type integerValue]) {
return [NSString stringWithFormat:@"%zd",[monthStr integerValue]];
}
NSString *currentMonth = [self getStringForDate:[NSDate date] format:@"MM"];
if ([currentMonth isEqualToString:monthStr]) {
return @"本";
}
switch ([monthStr integerValue]) {
case 1:
return @"一";
break;
case 2:
return @"二";
break;
case 3:
return @"三";
break;
case 4:
return @"四";
break;
case 5:
return @"五";
break;
case 6:
return @"六";
break;
case 7:
return @"七";
break;
case 8:
return @"八";
break;
case 9:
return @"九";
break;
case 10:
return @"十";
break;
case 11:
return @"十一";
break;
case 12:
return @"十二";
break;
default:
break;
}
return nil;
}