1.获取当前时间戳
/**
* 获取当前时间戳
*
* @param format 格式 如 yyyy-MM-dd HH:mm:ss
*
* @return NSString
*/
+ (NSString *)currentTimeStringWithFormat:(NSString *)format {
NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat = format;
NSString *result = [formatter stringFromDate:[NSDate date]];
return result;
}
2.根据时间戳格式返回当前时间
/**
* 根据时间戳和格式返回当前时间
*
* @param timeStamp 时间戳
* @param format 格式
*
* @return NSString
*/
+ (NSString *)dateStringWithTimeStamp:(NSString *)timeStamp Format:(NSString *)format {
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:format];
[formatter setTimeZone:timeZone];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timeStamp longLongValue] / 1000];
NSString *result = [formatter stringFromDate:date];
return result;
}
3.根据时间返回星期
/**
* 根据时间返回星期
*
* @param timeStr 时间戳
* @param format 格式
*
* @return NSString
*/
+ (NSString *)weekStringWithTimeStr:(NSString *)timeStr Format:(NSString *)format {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = format;
NSDate *inputDate = [formatter dateFromString:timeStr];
NSArray *weekdays = [NSArray arrayWithObjects: [NSNull null], @"周日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];
[calendar setTimeZone: timeZone];
NSCalendarUnit calendarUnit = NSWeekdayCalendarUnit;
NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:inputDate];
return [weekdays objectAtIndex:theComponents.weekday];
}
4.根据一种格式时间返回另一种格式时间
/**
* 根据一种格式时间返回另一种格式时间
*
* @param timeStr 时间
* @param format 格式
*
* @return NSString
*/
+ (NSString *)dateStringWithInputTimeStr:(NSString *)timeStr inputFormat:(NSString *)inputFormat outputFormate:(NSString *)outputFormate {
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
inputFormatter.dateFormat = inputFormat;
NSDate *inputDate = [inputFormatter dateFromString:timeStr];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
outputFormatter.dateFormat = outputFormate;
NSString *outputTimeStr = [outputFormatter stringFromDate:inputDate];
return outputTimeStr;
}
5. 根据时间返回相比今天是什么
/**
* 根据时间返回相比今天是哪天
*
* @param timeStr 时间
* @param format 格式
*
* @return NSString
*/
+ (NSString *)StringWithTimeStr:(NSString *)timeStr Format:(NSString *)format {
NSString *dateStr = [self dateStringWithInputTimeStr:timeStr inputFormat:format outputFormate:@"yyyyMMdd"];
NSInteger date = [dateStr integerValue];
NSDate *currentDate = [[NSDate alloc] init];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMdd";
NSString *currentDateStr = [formatter stringFromDate:currentDate];
NSInteger cDate = [currentDateStr integerValue];
NSInteger value = cDate - date;
switch (value) {
case 0:
return @"今天";
break;
case 1:
return @"昨天";
break;
case 2:
return @"前天";
break;
case -1:
return @"明天";
break;
case -2:
return @"后天";
break;
default:
return nil;
break;
}
}