6
デバイスタイムゾーンを追加して現在の日付を取得しようとしていますが、そのオリジナルの日付より1時間遅れて表示されています。私は、DaylightSavingTimeの問題を抱えています。 isDaylightSavingTime = FALSEを無効にする方法。ここ 現在のNSDateをシミュレータと同じように取得する方法Date? iPhone Sdk
が..私は使用している、私は1時間差で時刻を取得していますNSDate *date = [NSDate Date];
NSTimeZone *currentTimeZon = [NSTimeZone localTimeZone];
if ([currentTimeZon isDaylightSavingTime])
{
NSLog(@"East coast is NOT on DT");
}
else
{
NSLog(@"East coast is on DT");
}
NSTimeInterval timeZoneOffset = [currentTimeZon secondsFromGMTForDate:currentDate];
NSTimeInterval gmtTimeInterval = [date timeIntervalSinceReferenceDate] - timeZoneOffset;
NSDate *gmtDate = [NSDate dateWithTimeIntervalSinceReferenceDate:gmtTimeInterval];
NSLog(@"### Announcement gmtDate = %@",gmtDate);
コードで、日付がperfactです。
各瞬間に1つのNSDateしかありません(どこにいても問題ありません)。別のタイムゾーンで日付を印刷する場合は、NSDateFormatterを使用します。 –
ですが、タイムゾーンの変更に応じて自動的に変更される汎用機能が必要です。 isDaylightSavingTime = FALSEのときに問題があります。だから私はisDaylightSavingTime = TRUEを設定したいが、私はそれをすることはできない – Sujal