0

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 分になりますか? どうしたの?

4

1 に答える 1

1

これは、iOS4 の UIDatePicker への文書化されていない変更に関連している可能性があると思います。デフォルトでは (私が思うに) タイムゾーンとして GMT になっています。

UIDatePicker のタイム ゾーンをシステムのタイム ゾーンに設定して、ユーザーが期待どおりのエクスペリエンスを得られるようにすることができます。

yourDatePicker.timeZone = [NSTimeZone systemTimeZone];
于 2010-10-03T18:55:58.963 に答える