根据年月日时间换算到精确时分秒和周几

来源:互联网 发布:ipad怎么上淘宝卖家版 编辑:程序博客网 时间:2024/05/18 01:56

闲来无事看到微信列表右侧有显示时间,可以清晰的看出来具体什么时间收到的消息

现在我根据后台返回的时间年月日时分秒来转换时间demo地址:https://github.com/tuwanli/ShowTimeDemo

demo:http://download.csdn.net/detail/tuwanli125/9470326

后台请求的数据:


该建表的建表,该创建cell的创建cell,然后就是将数据显示在表里

主要转换的代码如下

+ (NSString*)weekDayStr:(NSDate *)format{    NSString *weekDayStr = nil;        NSDateComponents *comps = [[NSDateComponents alloc] init];    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];    NSInteger unitFlags =NSCalendarUnitYear | NSCalendarUnitMonth |NSCalendarUnitDay | NSCalendarUnitWeekday |    NSCalendarUnitHour |NSCalendarUnitMinute | NSCalendarUnitSecond;    comps = [calendar components:unitFlags fromDate:format];        NSString *str = [self description];    if (str.length >= 10) {        NSString *nowString = [str substringToIndex:10];        NSArray *array = [nowString componentsSeparatedByString:@"-"];        if (array.count == 0) {            array = [nowString componentsSeparatedByString:@"/"];        }        if (array.count >= 3) {            NSInteger year = [[array objectAtIndex:0] integerValue];            NSInteger month = [[array objectAtIndex:1] integerValue];            NSInteger day = [[array objectAtIndex:2] integerValue];            [comps setYear:year];            [comps setMonth:month];            [comps setDay:day];        }    }        NSCalendar *gregorian = [[NSCalendar alloc]                             initWithCalendarIdentifier:NSCalendarIdentifierGregorian];    NSDate *_date = [gregorian dateFromComponents:comps];    NSDateComponents *weekdayComponents = [gregorian components:NSCalendarUnitWeekday fromDate:_date];    NSInteger week = [weekdayComponents weekday];    week ++;    switch (week) {        case 1:            weekDayStr = @"星期日";            break;        case 2:            weekDayStr = @"星期一";            break;        case 3:            weekDayStr = @"星期二";            break;        case 4:            weekDayStr = @"星期三";            break;        case 5:            weekDayStr = @"星期四";            break;        case 6:            weekDayStr = @"星期五";            break;        case 7:            weekDayStr = @"星期六";            break;        default:            weekDayStr = @"";              break;      }      return weekDayStr;  }+ (NSString *)remindlistTime:(NSString *)timeStr{    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    [formatter setDateStyle:NSDateFormatterMediumStyle];    [formatter setTimeStyle:NSDateFormatterShortStyle];    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];     NSDate* date = [formatter dateFromString:timeStr];                    NSTimeInterval secondsPerDay = 24 * 60 * 60;    NSDate *today = [[NSDate alloc] init];    NSDate *yesterday,*weekday;        weekday = [today dateByAddingTimeInterval: -(secondsPerDay*7)];    yesterday = [today dateByAddingTimeInterval: -secondsPerDay];        // 10 first characters of description is the calendar date:    NSString * todayString = [[today description] substringToIndex:10];    NSString * yesterdayString = [[yesterday description] substringToIndex:10];    NSString * dateString = [[date description] substringToIndex:10];        if ([dateString isEqualToString:todayString])    {        return @"今天";    } else if ([dateString isEqualToString:yesterdayString])    {        return @"昨天";    }else if ([weekday timeIntervalSince1970]>[date timeIntervalSince1970]){                NSArray *timeArr = [[[timeStr componentsSeparatedByString:@" "] objectAtIndex:0] componentsSeparatedByString:@"-"];        NSString *dayTime;        NSString *monthlyTime;        if ([[timeArr[2] substringToIndex:1] isEqualToString:@"0"]) {            dayTime = [timeArr[2] substringFromIndex:1];        }else{            dayTime = timeArr[2];        }        if ([[timeArr[1] substringToIndex:1] isEqualToString:@"0"]) {            monthlyTime = [timeArr[1] substringFromIndex:1];        }else{            monthlyTime = timeArr[1];        }        return [NSString stringWithFormat:@"%@/%@/%@",[(NSString *)timeArr[0] substringFromIndex:2],monthlyTime,dayTime];    }    else    {        return [Tool weekDayStr:date];    }    }

效果:


如果你发现你看不见我单元格的线,告诉你一个秘密,因为我用的iOS9的模拟器,像素太高,所以看不见,command+1就能看见了,哈哈

1 0
原创粉丝点击