iOS 獲取當前時間以及計算年齡(時間差)


獲取當前時間

        NSDate *now = [NSDate date];
        NSLog(@”now date is: %@”, now);
    
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
        NSDateComponents *dateComponent = [calendar components:unitFlags fromDate:now];
    
        int year = [dateComponent year];
        int month = [dateComponent month];
        int day = [dateComponent day];
        int hour = [dateComponent hour];
        int minute = [dateComponent minute];
        int second = [dateComponent second];
    
        NSLog(@”year is: %d”, year);
        NSLog(@”month is: %d”, month);
        NSLog(@”day is: %d”, day);
        NSLog(@”hour is: %d”, hour);
        NSLog(@”minute is: %d”, minute);
        NSLog(@”second is: %d”, second);

計算年齡

第一種僅僅得出年份差的年齡

    //計算年齡
    NSString *birth = @"1993-10-30";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    //生日
    NSDate *birthDay = [dateFormatter dateFromString:birth];
    //當前時間
    NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
    NSDate *currentDate = [dateFormatter dateFromString:currentDateStr];
    NSLog(@"currentDate %@ birthDay %@",currentDateStr,birth);
    NSTimeInterval time=[currentDate timeIntervalSinceDate:birthDay];
    int age = ((int)time)/(3600*24*365);
    NSLog(@"year %d",age);

另外一種得出詳細到天的年齡

NSCalendar *calendar = [NSCalendar currentCalendar];//定義一個NSCalendar對象
    
    NSDate *nowDate = [NSDate date];
    
    NSString *birth = @"1900-10-30";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    //生日
    NSDate *birthDay = [dateFormatter dateFromString:birth];
    
    //用來得到詳細的時差
    unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
    NSDateComponents *date = [calendar components:unitFlags fromDate:birthDay toDate:nowDate options:0];
    
    if([date year] >0)
    {
        NSLog(@"%@",[NSString stringWithFormat:(@"%ld歲%ld月%ld天"),(long)[date year],(long)[date month],(long)[date day]]) ;
    }
    else if([date month] >0)
    {
        NSLog(@"%@",[NSString stringWithFormat:(@"%ld月%ld天"),(long)[date month],(long)[date day]]);
    }
    else if([date day]>0){
        NSLog(@"%@",[NSString stringWithFormat:(@"%ld天"),(long)[date day]]);
    }
    else {
       NSLog(@"0天");
    }


字符串、日期、Int轉換

此項參考:http://blog.csdn.net/tt5267621/article/details/7720434

1、字符串轉換為日期

NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//實例化一個NSDateFormatter對象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//設定時間格式,這里能夠設置成自己須要的格式
NSDate *date =[dateFormat dateFromString:@"1980-01-01 00:00:01"];

2、日期轉換為字符串

NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//實例化一個NSDateFormatter對象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//設定時間格式,這里能夠設置成自己須要的格式
NSString *currentDateStr = [dateFormat stringFromDate:[NSDate date]];

3、字符串轉int

Convert NSString to int
NSString *aNumberString = @"123";
int i = [aNumberString intValue];

4、int轉字符串

Convert int to NSString
int aNumber = 123;
NSString *aString = [NSString stringWithFormat:@"%d", aNumber];



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM