Как создать пользовательскую дату на iPhone

Я пытаюсь установить некоторые компоненты сегодняшней даты с NSDateComponent как так:

    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setDay:1];
    [comps setHour:1];
    [comps setMinute:44];
    NSCalendar *cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDate *date = [cal dateByAddingComponents:comps toDate:[NSDate date] options:0];
    [comps release];
    NSLog(@"%@", date);

Но этот пример будет ADD время к текущей дате. Теперь то, что я хочу сделать, является ADD один день, но установило час и минуту к заданным значениям (никакое добавление). Как я могу сделать это?

1
задан sebrock 17 July 2010 в 11:49
поделиться

2 ответа

В итоге это сработало:

NSDateComponents *comp = [[NSCalendar currentCalendar] components:NSYearCalendarUnit
NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comp setDay:[comp day] +1];
[comp setHour: 12];
[comp setMinute: 00];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:comp];
2
ответ дан 2 September 2019 в 22:59
поделиться

Легко: просто используйте свойство date ...

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:1];
[comps setHour:1];
[comps setMinute:44];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];

Изменить: забыл календарь. Из руководства (1-я страница NSDateComponents выделена жирным шрифтом ):

Важно: объект NSDateComponents бессмысленен сам по себе; вам нужно знать, по какому календарю он интерпретируется, и вам нужно знать, являются ли значения абсолютными значениями единиц или количеством единиц.

Также есть пример того, как его использовать.

0
ответ дан 2 September 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: