У меня есть следующий кодФормат даты Swift 3,0
var calendar = Calendar.current
let unitFlags = Set<Calendar.Component>([.hour, .year, .minute])
calendar.timeZone = TimeZone(identifier: "UTC")!
let startHour = calendar.component(.hour, from: cell.startDate as Date)
let startMinutes = calendar.component(.minute, from: cell.endDate as Date)
let endHour = calendar.component(.hour, from: cell.endDate as Date)
let endMinute = calendar.component(.minute, from: cell.endDate as Date)
print("start hours = \(startHour) : \(startMinutes)")
print("end hours = \(endHour) : \(endMinute)")
Таким образом, результат был прав, но в неправильном формате. Например, он печатает 22:30, чего я хочу, но когда дело доходит до чисел менее 10, например, 2 AM, оно печатает 2: 0 вместо 02:00. Как я могу решить эту проблему? Я пытаюсь связать dateformatter с календарем, но я не могу. Я также попытался решить эту проблему, используя следующий подход:
let myFormatter = DateFormatter()
myFormatter.dateFormat = "HH:mm"
print(myFormatter.string(from: cell.startDate))
print(myFormatter.string(from: cell.endDate))
Но это часы печати, которые не имеют никакого отношения к точным часам. Не знаю, почему.
Итак, любая помощь будет высоко оценена!
Не работает. Это часы печати, которые за 3 часа до того, что должно быть на самом деле. – rgoncalv
Это, например, дата, записанная в базе данных: 2016-10-18T22: 00: 00.000Z. Таким образом, это печать 01:00 вместо 22:00 – rgoncalv
Кроме того, если пользователь создает встречу со временем, не удается ли получить его часовой пояс и правильно установить его для других пользователей из того же часового пояса, которые видят встречу ? – rgoncalv