我正在尝试使用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);
但是这个例子会将时间添加到当前日期。现在我要做的是添加一天,但将小时和分钟设置为指定值(不添加)。我怎么能这样做?
答案 0 :(得分: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];
答案 1 :(得分:0)
简单:只需使用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];
编辑:忘记了日历。从手册(NSDateComponents的第一页粗体):
重要说明:NSDateComponents对象本身没有意义;您需要知道它所针对的日历,您需要知道这些值是单位的绝对值还是单位的数量。
还有一个如何使用它的例子。