时间使用

一、使用的类对象

    NSDate、NSDateFormatter


二、获取当前时间格式化字符串

- (NSString*)getCurrTimeStr{
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd HH:mm";
    formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
    
    NSString *dateStr = [formatter stringFromDate:[NSDate date]];
    return dateStr;
}

三、根据服务器时间戳获取时间字符串

#pragma mark 根据服务器时间戳获取时间字符串
- (NSString*)getCreateTime:(NSNumber*)timestamp{
    
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
    
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timestamp integerValue]];
    NSString *dateStr = [dateFormatter stringFromDate:date];
    return dateStr;
}


四、返回指定格式字符串的nsdate

- (NSDate *)getDateFromString:(NSString *)dateString WithFormat:(NSString *)format
{
    NSTimeZone* GTMzone = [NSTimeZone systemTimeZone];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:format];
    [dateFormatter setTimeZone:GTMzone];
    NSDate *bdate = [dateFormatter dateFromString:dateString];
    return bdate;
}



五、获取当前时间的时间戳 ,当前时间可改为其他时间

    //单位 s
    //想取得毫秒时用获取到的时间戳 *1000 ,想取得微秒时 用取到的时间戳 * 1000 * 1000
    //1476761646.101464
    NSTimeInterval interval = [[NSDate date] timeIntervalSince1970];
    NSLog(@"the interval is %f",interval);


六、根据时间字符串,获取距当前时间是几分钟前、几小时前、几天前的数据

- (NSString*)getFormatTimeStr:(NSString *)oldDateStr{
    if(oldDateStr.length != 19){
        return @"";
    }
    NSDateFormatter *date = [[NSDateFormatter alloc]init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    NSDate *oldDate =[date dateFromString:oldDateStr];
    NSDate *currDate = [NSDate date];
    NSTimeInterval value = [currDate timeIntervalSinceDate:oldDate];
    
    NSString *str;
    if (value > 0 && value <= 60) {
        str = @"刚刚";
    }else if (value <= 3600){
        int minute = value / 60;
        if(minute > 5){
            str = [NSString stringWithFormat:@"%d分钟前",minute];
        }else{
            str = @"刚刚";
        }
    }else if (value <= 3600 * 24){
        NSLog(@"%d小时前",(int)(value / 60 / 60));
        str = [NSString stringWithFormat:@"%d小时前",(int)(value / 60 / 60)];
    }else{
        NSLog(@"%d天前",(int)(value / 60 / 60 /24));
        NSString *tempStr = [oldDateStr substringToIndex:10];
        str = [tempStr stringByReplacingOccurrencesOfString:@"-" withString:@"."];
    }
    return str;
}

七、返回指定日期对应星期几

- (int)getWeekFromDate:(NSDate *)date
{
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit |
    NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
    NSDateComponents *comps = [calendar components:unitFlags fromDate:date];
    int week = comps.weekday;
    return week;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值