DST (ヨーロッパ時間) を含む具体的なタイム ゾーンで日付を表示する必要があります。アプリはリトアニアで使用するため、タイムゾーンは夏季が+3、その他の時期が+2です。問題は、日付のリストしかなく、夏の日付に +3 を表示し、他の日付に +2 を表示する方法がわかりません。現在、私はタイムゾーンを持っています:
// Eastern European Summer Time UTC + 3 hours
NSTimeZone *timeZoneWithDst = [NSTimeZone timeZoneWithAbbreviation:@"EEST"];
//Eastern European Time UTC + 2 hours
NSTimeZone *timeZoneWithoutDst = [NSTimeZone timeZoneWithAbbreviation:@"EET"];
しかし、日付のリストをループして計算するには、日付に +3 または +2 を追加する必要がありますか?
更新最後に、省略形ではなく名前でタイムゾーンを使用するというMartin R.の提案を適用することで機能しました。このように、このタイム ゾーンの日付は DST を自動的に処理します。日付を変換するための私のコードは次のとおりです。
NSTimeZone *TimeZone = [NSTimeZone timeZoneWithName:@"Europe/Vilnius"];
NSInteger seconds = [myTimeZone secondsFromGMTForDate:someDate];
NSDate *result = [NSDate dateWithTimeInterval:seconds sinceDate:someDate];