iOS--日期

來源:互聯網
上載者:User

標籤:

1,讀取當前的日期格式,然後自動轉化為yyyy-MM-dd HH:mm:ss 0000

    //日期格式器    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];        // E:星期幾    // M:月份    // d:幾號(這個月的第幾天)    // H:24小時制的小時    // m:分鐘    // s:秒    // y:年    // _created_at == Thu Oct 16 17:06:25 +0800 2014    //讀取當前的日期格式,然後自動轉化為yyyy-MM-dd HH:mm:ss 0000    fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";

2,如果是真機調試,轉換這種歐美時間,需要設定locale

fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

3,字串互轉日期

    //字串轉為日期    NSDate *creatDate = [fmt dateFromString:_created_at];    //日期轉為字串    NSString *str = [fmt stringFromdata:_created_at];

4,對比兩個日期的差值

 //日曆對象    NSCalendar *calendar = [NSCalendar currentCalendar]; //計算兩個日期之間的差值,NSCalendarUnit枚舉代表想獲得哪些差值    NSCalendarUnit unit = kCFCalendarUnitYear | kCFCalendarUnitMonth | kCFCalendarUnitDay | kCFCalendarUnitHour | kCFCalendarUnitMinute; //獲得對比對象    NSDateComponents *cmps = [calendar components:unit fromDate:creatDate toDate:now options:0];

5,判斷是否為今天,昨天,今年

- (BOOL)isThisYear:(NSDate *)creatDate{#warning //取出當前的日期--年月日    NSCalendar *calendar = [NSCalendar currentCalendar];    NSDateComponents *dateCmps = [calendar components:NSCalendarUnitYear fromDate:creatDate];    NSDateComponents *nowCmps = [calendar components:NSCalendarUnitYear fromDate:[NSDate date]];        return dateCmps.year == nowCmps.year;}- (BOOL)isToday:(NSDate *)creatDate{    /** 另一種方法*/    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd";        NSDate *now = [NSDate date];    NSString *nowStr = [fmt stringFromDate:now];    NSString *dateStr = [fmt stringFromDate:creatDate];        return [nowStr isEqualToString:dateStr];}- (BOOL)isYesterday:(NSDate *)creatDate{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"dd";        NSDate *now = [NSDate date];    NSString *nowStr = [fmt stringFromDate:now];    NSString *dateStr = [fmt stringFromDate:creatDate];        BOOL isSure = NO;    if (nowStr.intValue - dateStr.intValue == 1) {        isSure = YES;    }    //WBLog(@"%d",xx);        return isSure;}

6,微博時間顯示

//1,美國時間轉為中國時間//2, 轉為各種模式顯示-(NSString *)created_at{    _created_at = @"Thu Aug 26 10:35:34 +0800 2015";        //日期格式器    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];        // E:星期幾    // M:月份    // d:幾號(這個月的第幾天)    // H:24小時制的小時    // m:分鐘    // s:秒    // y:年    // _created_at == Thu Oct 16 17:06:25 +0800 2014    //讀取當前的日期格式,然後自動轉化為yyyy-MM-dd HH:mm:ss 0000    fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";#warning  如果是真機調試,轉換這種歐美時間,需要設定locale    fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];    //微博的建立日期    NSDate *creatDate = [fmt dateFromString:_created_at];    //目前時間    NSDate *now = [NSDate date];    //日曆對象(方便兩個日期之前的差距比較)    NSCalendar *calendar = [NSCalendar currentCalendar];        //計算兩個日期之間的差值,NSCalendarUnit枚舉代表想獲得哪些差值    NSCalendarUnit unit = kCFCalendarUnitYear | kCFCalendarUnitMonth | kCFCalendarUnitDay | kCFCalendarUnitHour | kCFCalendarUnitMinute;    NSDateComponents *cmps = [calendar components:unit fromDate:creatDate toDate:now options:0];        if ([self isThisYear:creatDate]) {        if ([self isYesterday:creatDate]) {            fmt.dateFormat = @"昨天 HH:mm";            return [fmt stringFromDate:creatDate];        }else if ([self isToday:creatDate]){            if (cmps.hour > 1) {                return [NSString stringWithFormat:@"%d小時前",cmps.hour];            }else if (cmps.minute > 1){                return [NSString stringWithFormat:@"%d分鐘前",cmps.minute];            }else{                return @"剛剛";            }        }else{//今年其他日子            fmt.dateFormat = @"MM-dd HH:mm";            return [fmt stringFromDate:creatDate];        }    }else{//非今年        fmt.dateFormat = @"yyyy-MM-dd HH:mm";        return [fmt stringFromDate:creatDate];    }        return _created_at;}- (BOOL)isThisYear:(NSDate *)creatDate{#warning //取出當前的日期--年月日    NSCalendar *calendar = [NSCalendar currentCalendar];    NSDateComponents *dateCmps = [calendar components:NSCalendarUnitYear fromDate:creatDate];    NSDateComponents *nowCmps = [calendar components:NSCalendarUnitYear fromDate:[NSDate date]];        return dateCmps.year == nowCmps.year;}- (BOOL)isToday:(NSDate *)creatDate{    /** 另一種方法*/    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd";        NSDate *now = [NSDate date];    NSString *nowStr = [fmt stringFromDate:now];    NSString *dateStr = [fmt stringFromDate:creatDate];        return [nowStr isEqualToString:dateStr];}- (BOOL)isYesterday:(NSDate *)creatDate{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"dd";        NSDate *now = [NSDate date];    NSString *nowStr = [fmt stringFromDate:now];    NSString *dateStr = [fmt stringFromDate:creatDate];        BOOL isSure = NO;    if (nowStr.intValue - dateStr.intValue == 1) {        isSure = YES;    }    //WBLog(@"%d",xx);        return isSure;}


iOS--日期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.