В Swift Playground я запускаю это.
let string = "2019-01-14T00:00:00+08:00"
let utcTimezone = TimeZone(abbreviation: "UTC")!
let sgtTimezone = TimeZone(abbreviation: "SGT")!
let dfs = DateFormatter()
dfs.timeZone = sgtTimezone
dfs.locale = Locale(identifier: "en_sg")
dfs.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZ"
dfs.calendar = Calendar(identifier: Calendar.Identifier.iso8601)
let date = dfs.date(from: string)!
Почему дата = Jan 13, 2019 at 11:00 PM
, а не точная 14 января 2019 года в 00:00?
Попытка изменить часовой пояс на UTC, но по умолчанию результат UTC
Я ожидаю Jan 14, 2019 at 00:00 AM
.. или, по крайней мере, 14 января