为什么UIDatePicker在倒计时模式下落后1小时?

时间:2014-02-01 16:24:14

标签: xcode uidatepicker

如果我将倒计时模式下的UIDatePicker日期设置为“1970-01-01 00:05:00 +0000”,则会显示[1小时| 5分钟] - 为什么?

设定日期(在不同的班级中):

_countdownTime=[[NSDate alloc] initWithTimeIntervalSince1970:5*60];

创建选择器并指定日期:

//setup a date picker as countdown picker
    UIDatePicker *countdownPicker = [[UIDatePicker alloc] init];
    [countdownPicker setDate:[NSDate date]];
    [countdownPicker setDatePickerMode:UIDatePickerModeCountDownTimer];
    [countdownPicker setMinuteInterval:5];
    [countdownPicker addTarget:self action:@selector(updateCountdownTimeText:) forControlEvents:UIControlEventValueChanged];

    [countdownPicker setDate:[myAction getCountdownTime]];

1 个答案:

答案 0 :(得分:1)

(这至少有点猜测......我根本不是iOS专家。)

听起来问题恰恰是因为你使用的是GMT + 1的时区 - 或者是1970年1月的时区。

基本上我认为UIDatePicker会显示给定NSDate的当地时间,并应用相关的时区。 initWithTimeIntervalSince1970初始化一个日期,该日期具有自Unix时代以来的给定秒数,即午夜 UTC

我建议您将时区设置为UTC:

[countdownPicker setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

然后希望它能展示你的期望......

相关问题