【问题标题】:UIDatePicker: time mode: initialize the time (gotta be simple)UIDatePicker:时间模式:初始化时间(要简单)
【发布时间】:2011-04-07 08:18:16
【问题描述】:

全部,

这似乎是一件很简单的事情,但我找不到*在时间模式下创建 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:00。

这一定很简单,以至于我错过了它,但我找不到正确的方法——有人吗?

提前谢谢你!

:bp:

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

【问题讨论】:

    标签: iphone nsdate uidatepicker ios4


    【解决方案1】:

    考虑时区。仅当您在 UTC 时,您才会得到 0AM。

    【讨论】:

    • 感谢您的回复!我确实将时区设置为默认时区和实际时区。由于这是在 iPhone 模拟器中,因此该位置认为自己是加利福尼亚。我想,真正的 问题是,如果我想将 DatePicker 时间初始化为:上午 7:14,我该怎么做?我想从中得到的只是更改后的值,例如上午 7:20。这甚至是正确的小部件吗?
    • 设置时间 [pickerView setDate:date];是正确的,您只需要设置一个正确时间的日期。要获取选定的日期,只需执行 [pickerView date] 并从日期获取时间。
    【解决方案2】:

    谢谢 dkk -- 感谢您的帮助。真正的答案是不使用 DatePicker,而是使用 PickerView(不带日期)。这使事情变得更简单和可行。 再次感谢。

    【讨论】:

      【解决方案3】:
      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 = 晚上 9 点

      这适用于UIDatePickerdatePickerModeUIDatePickerModeTimeUIDatePickerModeCountDownTimer

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 2016-04-08
        • 2012-10-06
        • 1970-01-01
        相关资源
        最近更新 更多