Кажется, метод setDefaultTimeZone больше не доступен в NSTimeZone. Кто-нибудь знает заменитель этого?
В моем AppDelegate.swift у меня есть:
NSTimeZone.default = TimeZone(abbreviation: "BST")!
и он работает как положено, я думаю, потому что во всех других файлах я установил NSTimeZone на это значение
Теперь в моем Utils у меня есть этот метод:
static func getDate(_ dateStr: String) -> Date {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    // dateFormatter.timeZone = TimeZone(abbreviation: "GMT")
    let date =  dateFormatter.date(from: dateStr)!
    return date
}
Итак, допустим, я даю ему ввод 2016-10-07, он возвращает мне 2016-10-06 23:00. Почему? Это исправляется, если вы раскомментируете строку в приведенном выше коде. Я не хочу использовать эту линию везде.
Например, в какой-то другой части моего проекта я использовал CVCalendar. Он предоставляет функцию для получения convertDate, например, так
func didSelectDayView(_ dayView: DayView, animationDidFinish: Bool) {
    selectedDay = dayView
    selectedDate = dayView.date.convertedDate()!
}
Здесь происходит то же самое, что и раньше... то есть я нажимаю 2016-10-08, и он selectedDate здесь становится 2016-10-07 23:00.
И NSTimeZone.Default печатает Europe/London везде.
У кого-нибудь есть идеи, почему это происходит?
