我试图从组件设置NSDate;小时是我需要实际设置的唯一内容,其余部分来自当前日期 . 这是我的代码:

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSCalendarIdentifierGregorian];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]];

//  put in date with start time
int month = [components month];
int day = [components day];
int year = [components year];

[components setHour: startTime];
[components setMinute: 0];
[components setSecond: 0];
NSDate *startDate = [gregorian dateFromComponents: components];

这是控制台的结果:

打印组件说明:日历年份:2015月:10闰月:无日:3小时:1730分钟:0秒:0开始说明startDate:2015-10-25 15:57:12 0000

请注意,月份和时间已从提供的更改 . 我的问题是为什么它会改变(供将来参考),我该怎么做才能解决这个问题?