Как получить день, месяц, год, часы, минуты, секунды из метки времени UNIX в Objective C на Iphone - PullRequest
0 голосов
/ 18 сентября 2010

Я перебирал все виды справочных документов и примеров по сети, но я просто не могу понять, как узнать, какой день, месяц, год, часы, минуты будут для данной временной отметки в 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];

Несмотря на то, что временная метка указана на октябрьский день, выходные данные дают мне 19 декабря.

Ответы [ 2 ]

1 голос
/ 05 июня 2012
//  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];
0 голосов
/ 18 сентября 2010

Документы для dateWithTimeIntervalSince1970: говорят:

Этот метод полезен для создания NSDate объектов из time_t значений, возвращаемых системными функциями BSD.

Можете ли вы показать код, который дал вам это магическое число 1286181000?то есть вы используете time_t значение?

...