Да, NSDateFormatter
автоматически настроится на летнее время, если вы создадите часовой пояс с [NSTimeZone timeZoneWithName]
. NSTimeZone
знает правила перехода на летнее время для каждого часового пояса и может заглянуть в будущее и прошлое и будет делать правильные шаги для NSDate
, переданного stringForDate
. Тем не менее, если вы создаете NSTimeZone
с [NSTimeZone timeZoneForSecondsFromGMT]
, DST настройки не будут сделаны. Следует также отметить, что правила перехода на летнее время могут быть изменены, что означает, что NSTimeZone
не гарантирует, что всегда будет действовать правильно для всех часовых поясов.
Вам не нужно использовать NSTimeZone.isDaylightSavingTime
или NSTimeZone.daylightSavingTimeOffset
для форматирования NSDate
в качестве точного местного времени DST. Оба эти метода работают в текущем времени. Если вы хотите узнать, попадает ли NSDate
в летнее время в часовом поясе, вы можете использовать метод NSTimeZone.isDaylightSavingTimeForDate
, и если вы хотите узнать, каково смещение летнего времени для NSDate, вы можете использовать метод NSTimeZone.daylightSavingTimeOffsetForDate
.