OS4的时间选择器问题?

时间:2010-10-03 18:13:40

标签: iphone ios4 nsdate timepicker

我有一个应用程序,我正在更新到OS4。在这里我使用时间选择器。从这里我想得到一个小时和一分钟作为一个整体。这是我以前用过的代码......

NSDate *selected = [timePicker date];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit| NSMinuteCalendarUnit |NSSecondCalendarUnit;


NSDateComponents *compsDur = [gregorian components:unitFlags fromDate:selected];
int hDur = [compsDur hour];
int mDur = [compsDur minute];
int sDur = [compsDur second];

[gregorian release];

现在一切正常。我的问题是当我更新到OS4时,如果我更改我的手机时间设置说从英国到美国,我会得到一个随机值而不是用户输入的内容。

为了给你一个具体的例子,在英国时间我将时间设置为1分钟,我得到mDur的返回值为1.如果我然后将手机更改为纽约时间我得到19小时6分钟?发生了什么事?

1 个答案:

答案 0 :(得分:1)

我认为这可能与iOS4中UIDatePicker的未记录更改有关,默认情况下(我认为)GMT是时区。

您可以将UIDatePicker的时区设置为系统时区,以便用户获得预期的体验。

yourDatePicker.timeZone = [NSTimeZone systemTimeZone];