首页 文章

如何从Iphone上的Objective C中的UNIX时间戳获取日,月,年,小时,分钟,秒

提问于
浏览
0

我一直在网上浏览各种参考文档和示例,但我无法了解如何获得Objective C中给定时间戳的日,月,年,小时,分钟 . 想法?我用于此目的的代码是这样的:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:1286181000];
    unsigned int compFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;
    NSDateComponents *weekdayComponents = [[NSCalendar currentCalendar] components:compFlags fromDate:date];
    NSLog(@"%d %d, %d:%d", [weekdayComponents day], [weekdayComponents month], [weekdayComponents hour], [weekdayComponents minute]);
    [date release];
    [weekdayComponents release];

虽然时间戳是10月份的一天,但输出结果却是12月19日 .

2 回答

  • 1

    dateWithTimeIntervalSince1970:的文档说:

    此方法对于从BSD系统函数返回的time_t值创建NSDate对象很有用 .

    你能展示给你神奇数字 1286181000 的代码吗?即你使用 time_t 值?

  • 0
    //  for age validation  (dynamic age in date picker for 18-100 year)
    
     NSDate *today = [NSDate date];
        NSDateComponents *dc_min = [[[NSDateComponents alloc] init] autorelease];
        [dc_min setYear:-100];
        NSCalendar *cal_min = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
        NSDate *pastDate_min = [cal_min dateByAddingComponents:dc_min toDate:today  options:0];
        [datePicker setMinimumDate:pastDate_min];
    
    
        NSDateComponents *dc_max = [[[NSDateComponents alloc] init] autorelease];
        [dc_max setYear:-18];
        NSCalendar *cal_max = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
        NSDate *pastDate_max = [cal_max dateByAddingComponents:dc_max toDate:today  options:0];
    
        [datePicker setMinimumDate:pastDate_min];
        [datePicker setMaximumDate:pastDate_max];
    
    
        [datePicker setDate:[datePicker maximumDate]];
        [datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
    

相关问题