Как создать пользовательскую дату на iPhone
-
17-09-2020 - |
Вопрос
Я пытаюсь установить некоторые компоненты сегодняшнего дня с 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);
.
Но этот пример добавит время на текущую дату.Теперь, что я хочу сделать, это добавить один день, но установить час и минуту до указанных значений (без добавления).Как я могу сделать это?
Решение
Это работало в конце:
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];
. Другие советы
Легко: просто используйте свойство 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 бессмысленнее;Вам нужно знать, в каком календаре он интерпретируется, и вам нужно знать, являются ли значения абсолютными значениями единиц или количества единиц.
Есть также пример того, как его использовать.
Не связан с StackOverflow