如果我将倒计时模式下的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]];
答案 0 :(得分:1)
(这至少有点猜测......我根本不是iOS专家。)
听起来问题恰恰是因为你使用的是GMT + 1的时区 - 或者是1970年1月的时区。
基本上我认为UIDatePicker
会显示给定NSDate
的当地时间,并应用相关的时区。 initWithTimeIntervalSince1970
初始化一个日期,该日期具有自Unix时代以来的给定秒数,即午夜 UTC 。
我建议您将时区设置为UTC:
[countdownPicker setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
然后希望它能展示你的期望......