2011-06-26 61 views
2

我有小時和分鐘作爲NSIntegers(我不在乎秒......它可能是00),我有一個UIDatePicker調整爲顯示只是時間(UIDatePickerModeTime) 。iPhone - 調整UIDatePicker上的日期

簡單的問題:我如何在UIDatePicker上設置一個小時?小時採用24小時格式(因爲它自然來自採摘器)。

假設這樣的:

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

我知道我必須到小時和分鐘來NSDate的轉換,但我怎麼做,而不包括一天嗎?我只需要時間。

我已閱讀this example,但它也考慮當天。

我該如何構建一個只有時間的NSDate,所以我可以調整我的UIDatePicker?

感謝

回答

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]; 
+0

你確定'myTimePicker'不是' nil'?我問這是因爲我在提交答案之前測試了代碼。 –

+0

它工作,謝謝!!!!!!!!!!!!!!!我有一個錯誤的代碼,並使用了錯誤的變量。 – SpaceDog