我有一个应用程序,我正在更新到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分钟?发生了什么事?
答案 0 :(得分:1)
我认为这可能与iOS4中UIDatePicker的未记录更改有关,默认情况下(我认为)GMT是时区。
您可以将UIDatePicker的时区设置为系统时区,以便用户获得预期的体验。
yourDatePicker.timeZone = [NSTimeZone systemTimeZone];