关闭

iOS 获取当前时间以及计算年龄(时间差)

标签: iOS当前时间年龄时间格式
2588人阅读 评论(0) 收藏 举报
分类:

获取当前时间

        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];


0
0
查看评论

[iOS]NSDate计算年龄

直接上代码 - (NSInteger)ageWithDateOfBirth:(NSDate *)date; { // 出生日期转换 年月日 NSDateComponents *components1 = [[NSCalendar currentCalendar] components...
  • qq232053394
  • qq232053394
  • 2014-04-30 10:05
  • 6539

iOS 获取当前时间以及计算年龄(时间差)

NSDate *now = [NSDate date]; NSLog(@”now date is: %@”, now); NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInte...
  • hsf_study
  • hsf_study
  • 2016-08-17 17:33
  • 1264

【Ionic】Ionic自动计算时间+时间验证(Datatime,readonly,toFixed,parse)

一、起因因为要做一个请假,满足一下要求: 1、结束时间不能小于开始时间; 2、开始时间和结束时间可以调到过去的时间,考虑到补假; 3、如果请假天数小于0,则不让提交; 4、请假天数不允许编辑,是自动计算的;二、解决办法1、初始化(源代码) constructor(private navCt...
  • River_Continent
  • River_Continent
  • 2017-12-20 14:57
  • 189

IOS算两个时间差

/**  * 开始到结束的时间差  */ + (NSString *)dateTimeDifferenceWithStartTime:(NSString *)startTime endTime:(NSString *)endTime{     NSDa...
  • chuan403082010
  • chuan403082010
  • 2016-06-06 16:04
  • 13358

iOS 计算当前时间与过去某一时间的时间差

//计算当前时间与订单生成时间的时间差,转化成分钟 -(NSInteger)dateTimeDifferenceWithStartTime:(NSString *)startTime {     NSDate *now = [NSDate date]; ...
  • zhengxiaojuan008
  • zhengxiaojuan008
  • 2017-05-01 17:35
  • 1146

object-c获取毫秒值,时间差,计算执行耗费时间

UInt64 msecond1 = [[NSDate date] timeIntervalSince1970]*1000; UInt64 msecond2 = [[NSDate date] timeIntervalSince1970]*1000; NSLog(@"%llu&quo...
  • Qyee16
  • Qyee16
  • 2015-03-16 14:32
  • 4280

IOS 计算时间差

原文地址:http://my.oschina.net/gexun/blog/351443?p={{currentPage-1}} //计算上报时间差         NSDateFor...
  • yinxin2745154
  • yinxin2745154
  • 2015-08-04 11:53
  • 850

IOS根据date计算时间差

IOS根据date计算时间差 IOS开发有时候会有根据两个时间点获取时间差的需求 此处介绍一个获取两个时间差的简单方法 NSDate *oldDate = [NSDate date]; NSDate *currentDate = [NSDate date]; N...
  • lgx_admin
  • lgx_admin
  • 2016-03-31 19:20
  • 348

DB2的SQL中如何计算时间差

DB2 提供了一个名为 TIMESTAMPDIFF() 的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有 30 天。以下示例描述了如何得到两个日期的近似时差:  timestampdiff (, char(  timestamp('2...
  • lulei9876
  • lulei9876
  • 2013-06-17 16:48
  • 7682

Python时间操作--获取微秒级别的时间差

Python中有两个模块可以完成时间操作:time和datetime相比较而言datetime更强大以下分别是两个模块的具体信息>>> dir(time) ['__doc__', '__name__', '__package__', ...
  • Dave_2010
  • Dave_2010
  • 2017-03-09 21:09
  • 3480
    个人资料
    • 访问:234694次
    • 积分:3122
    • 等级:
    • 排名:第13373名
    • 原创:102篇
    • 转载:63篇
    • 译文:1篇
    • 评论:24条
    博客专栏