Date

时间处理

2023-03-06  本文已影响0人  失忆的程序员

时间处理

+ (NSString *)convertDateToStr:(NSDate *)date
{
    if (!date) {
        return nil;
    }
    
    if ([date isEqualToDate:[NSDate distantPast]]) {
        return @"";
    }
    
    NSDateFormatter *dateFmt = [[NSDateFormatter alloc] init];

    NSCalendar *calendar = [NSCalendar currentCalendar];
    calendar.firstWeekday = 7;
    NSDateComponents *nowComponent = [calendar components:NSCalendarUnitDay|NSCalendarUnitMonth|NSCalendarUnitYear|NSCalendarUnitWeekOfMonth fromDate:NSDate.new];
    NSDateComponents *dateCompoent = [calendar components:NSCalendarUnitDay|NSCalendarUnitMonth|NSCalendarUnitYear|NSCalendarUnitWeekOfMonth fromDate:date];
    
    if (nowComponent.year == dateCompoent.year) {
        // Same year
        if (nowComponent.month == dateCompoent.month) {
            // Same month
            if (nowComponent.weekOfMonth == dateCompoent.weekOfMonth) {
                // Same week
                if (nowComponent.day == dateCompoent.day) {
                    // Same day
                    dateFmt.dateFormat = @"HH:mm";
                } else {
                    // Not same day
                    dateFmt.dateFormat = @"EEEE";
                }
            } else {
                // Not same weeek
                dateFmt.dateFormat = @"MM/dd";
            }
        } else {
            // Not same month
            dateFmt.dateFormat = @"MM/dd";
        }
    } else {
        // Not same year
        dateFmt.dateFormat = @"yyyy/MM/dd";
    }
    
    NSString *str = [dateFmt stringFromDate:date];
    return str;
}

----------- ----------- -----------

图片.png
上一篇 下一篇

猜你喜欢

热点阅读