UIDatePicker:时间模式:初始化时间(必须简单)

时间:2010-09-02 13:15:24

标签: iphone nsdate uidatepicker ios4

所有

这看起来很简单,但我找不到*在时间模式下创建UIDatePicker的正确方法,并将其初始化为特定时间。我不想约会 - 只是时间(想想闹钟)。我创建了一个NSDate对象:

NSDate * date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate: (NSTimeInterval) delta];
pickerView = [[UIDatePicker alloc] init];  // which should be 'now' right?
pickerView.datePickerMode = UIDatePickerModeTime;  // which creates just the clock
[pickerView setDate:date];

并且在第一行中,间隔(delta)为零。它显示在晚上7点。

这必须如此简单以至于我错过了,但我找不到正确的方法 - 任何人?

提前谢谢!

:沸点:

*是的,我看过了,但显然不在正确的地方:(

3 个答案:

答案 0 :(得分:0)

考虑时区。只有你在UTC时才会得到0AM。

答案 1 :(得分:0)

谢谢dkk - 感谢您的帮助。真正的答案是不使用DatePicker,而是使用PickerView(没有日期)。这使得事情更简单,更容易实现。 再次感谢。

答案 2 :(得分:0)

NSDate *date = [NSDate date];
date = [[NSCalendar autoupdatingCurrentCalendar] dateFromComponents:[[NSCalendar autoupdatingCurrentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]];
date = [date dateByAddingTimeInterval:60 * 60 * 21];

pickerView.date = date;

此处的日期步骤为

  • 使用当前日期初始化日期
  • 在午夜获取日期
  • 在日期中添加时间间隔(60秒* 60分钟*小时)。在这种情况下,21 = 9pm

这适用于UIDatePicker datePickerMode UIDatePickerModeTime& { UIDatePickerModeCountDownTimer