1

UIDatepickerが間違った値を返し、その理由がわかりません。写真を参照してください。0時間1分
表示されますが、ラベルには-1時間と表示されます。 設定するタイムゾーンが見つかりません。私のアプリは、それが置かれているマシンのタイムゾーンを使用することを期待していました。

ラベルを埋めるための私の行動:

- (IBAction)datePickerDateChanged:(id)sender {
   [_timerOutput setText:[NSString stringWithFormat:@"%@", [_timePicker date]]];
}

私はドイツ語のシステムを使用していて、UIDatepickerをドイツ語に設定しましたが、それでも時間が表示されます。

私が間違っていることについて何か考えはありますか?

ロナルド

ここに画像の説明を入力してください

4

1 に答える 1

2

これは、GMT冬時間(== UTC)の日時です。NSDateFormatterを使用して調整します。デフォルトでは、デフォルトのタイムゾーンを使用する必要があります。別のものを設定することもできます。

試す

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
NSString *myDateString = [dateFormatter stringFromDate: [_timePicker date]];
NSLog(@"%@", myDateString);

いくつかの理論:

NSDateオブジェクトは、日や範囲の時刻など、毎日の意味で日付と呼ばれるものを表すものではありません。これは、単一の時点を表します。サブミリ秒の精度で。そしてそれは時間間隔を数えることによってそうします。ある時代の初めから。定義上、UTCタイムゾーンを参照として保持しています。
内部カウンターは常にUTCコンテキストでカウントされます。正しく表示するのは、ユーザーの責任です。しかし、NSDateFormatterはそのために非常に役立ちます。
ところで:表示された時刻がUTC時間形式のものであることも、+0000UTCから00時間00分のタイムゾーンオフセットがあるため、で示されます。

于 2013-01-15T05:01:20.733 に答える