iOS开发 常用的时间转换公用方法(时间,时间戳各种常用场景转换)

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;
    }
    
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值