let timeZone = NSTimeZone.system.description
let localTimeZone = TimeZone.ReferenceType.local.description
let currentTimeZone = TimeZone.current.description
let defaultTimeZone = TimeZone.ReferenceType.default.description
let autoUpdateTimezon = TimeZone.autoupdatingCurrent.description
print ("System Timezone \(timeZone)")
print ("Local Timezone \(localTimeZone)")
print ("Current Timezone \(currentTimeZone)")
print ("Default Timezone \(defaultTimeZone)")
print ("Auto updating Timezone \(autoUpdateTimezon)")
ВЫВОД
Системный часовой пояс Азия/Калькутта (текущий)
Местный часовой пояс Азия/Калькутта (autoupdatingCurrent)
Текущий часовой пояс Asia/Kolkata (текущий)
Часовой пояс по умолчанию Азия/Калькутта (текущий)
Автоматическое обновление часового пояса Азия/Калькутта (autoupdatingCurrent)
Итак, я получаю, что все выходные данные одинаковы, так в чем разница между этими часовыми поясами и какой часовой пояс мы должны использовать в каком случае.
Проблема
Я использовал следующий код для преобразования даты
static func stringToString(strDate:String, fromFormat:String, toFormat:String)->String{
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.init(abbreviation: "UTC") ?? TimeZone(identifier: "UTC") ?? TimeZone.ReferenceType.default
dateFormatter.dateFormat = fromFormat
let currentDate = dateFormatter.date(from: strDate) ?? Date()
dateFormatter.dateFormat = toFormat
dateFormatter.timeZone = TimeZone.ReferenceType.default
let currentDates = dateFormatter.string(from: currentDate)
return currentDates
}
Сцена: Мое приложение дает сбой в Катаре, если пользователь автоматически устанавливает часовой пояс и
off the 24 hours
, но в Индии сбоя нет (TimeZone.ReferenceType.local)Я дал следующую сборку с
TimeZone.ReferenceType.default
и проблема решенаТак и не могу понять в чем дело.
Отчет о сбое
Старый код, в котором я получаю сбой