0

ユーザーが UITableView の時間 (30 分単位) から日付/時刻を選択できるようにするアプリに取り組んでいます。GMT であるため、電話機はそれを現地時間に自動変換し、スケジュールから外れます。選択した時刻は、カレンダーに追加される時刻になるように、GMT + オフセットに変換する必要があります (ユーザーは GMT ではなくローカル時刻を選択しているため)。

NSDate* newDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:1800.0*indexPath.row];
    [scheduled setObject:newDate forKey:@"date"];

ご覧のとおり、私はベース GMT を取得し、indexPath.row ごとに 1800 秒 (30 分) を追加しているだけですが、これは GMT で正しい時刻を取得するために機能しますが、実際には同じことを行う必要がありますが、ユーザーの現在のタイムゾーンから (そして私はGMTで時間を保存することになっているので、それをGMTに変換すると思います)

4

1 に答える 1

0
NSTimeInterval timeZoneOff = [[NSTimeZone systemTimeZone] secondsFromGMTForDate:[scheduled objectForKey:@"date"]];

NSDate *gmtDate = [[scheduled objectForKey:@"date"] dateByAddingTimeInterval:-timeZoneOff];

魅力のように機能します。

于 2012-10-03T01:29:57.427 に答える