iPhone - 在UIDatePicker上调整日期

时间:2011-06-26 06:51:30

标签: iphone

我有NSIntegers的小时和分钟(我不关心秒......它可能是00)并且我调整了UIDatePicker以显示时间(UIDatePickerModeTime)。

简单问题:如何在UIDatePicker上设置一小时?小时是24小时格式(因为它自然来自拾取器)。

假设:

NSInteger hour = 17;
NSInteger minute = 12;
[myTimePicker setDate: ????];

我知道我必须将这个小时和分钟转换为NSDate,但如何在不包括一天的情况下这样做?我只是需要时间。

我已阅读this example,但也会考虑当天。

如何构建一个时间的NSDate,以便我可以调整我的UIDatePicker?

感谢

1 个答案:

答案 0 :(得分:4)

你应该能够做到这一点,

NSCalendar * gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents * dateComponents = [[[NSDateComponents alloc] init] autorelease];
[dateComponents setHour:17];
[dateComponents setMinute:12];

myTimePicker.date = [gregorian dateFromComponents:dateComponents];

您可以稍后获得这样的小时和分钟,

NSCalendar * gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents * dateComponents = [gregorian components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:myTimePicker.date];

int hour = [dateComponents hour];
int minute = [dateComponents minute];