nibファイルにNSDatePickerがあります。コードでは、タイムゾーンをGMTカレンダーのタイムゾーンに設定します。
[datePicker setTimeZone:[calendar timeZone]];
私が本当に気にするのは、プログラムで入力する日付ピッカーの時間(時間、分)だけです。
NSDate *anyDate = [NSDate date];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:anyDate];
[components setHour:hours];
[components setMinute:minutes];
NSDate *newDate = [calendar dateFromComponents:components];
[datePicker setDateValue:newDate];
これには、日付ピッカーの時刻を希望の時刻に設定するという望ましい効果があります。したがって、時が8で、分が30の場合、日付ピッカーは8:30を示します。ただし、日付ピッカーの時間フィールドに8を入力すると、3と表示されます。どこかのタイムゾーンで何か奇妙なことが起こっていますが、どこにあるのかわかりません...