为什么构造NSDate的组件与用作输入的组件不同?

时间:2015-10-03 15:17:32

标签: objective-c nsdate ios9 nsdatecomponents

我正在尝试从组件中设置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

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

0 个答案:

没有答案