-2

重複の可能性:
[NSDate date] から数時間ずれた日付を取得する

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"M-d-yyyy H:mm"];

NSDate *start= [dateFormatter dateFromString:@"10-24-2012 12:15"];
NSDate *end  = [dateFormatter dateFromString:@"10-24-2012 15:30"];

プリントアウトしたら

   NSLog(@"------main_event start %@", start);
   NSLog(@"-----main_event end %@", end);

結果は

         ---main_event start 2012-10-24 19:15:00 +0000
         ---main_event end 2012-10-24 22:30:00 +0000

これで、自動的に 7 時間が追加され、12:15 が 19:15 になり、15:30 が 22:30 になるように見えます。

なんで?

4

2 に答える 2

1

デバイスがある場所のタイムゾーンは UTC-7 であるためです。

+0000単一の NSDate は常に UTC の時刻を出力するため、出力は UTC です (したがって)。

NSDateFormatter を使用して日付を出力する場合、ロケールが考慮されます。ここで私の答えを参照してください: NSDate 日付メソッドが間違った結果を返す

于 2012-10-24T00:15:14.527 に答える
0

これらは正しい結果です。を使用してオブジェクトNSLogを出力すると、 GMTで表示されます。解析はローカル タイムゾーンで行われました。オブジェクトは常にGMTです。NSDate オブジェクトをローカル タイムゾーンで出力したい場合は、日付を出力する必要があります。NSDateNSDateNSDateFormatter

于 2012-10-24T00:16:36.297 に答える