Из того, что я прочитал в комментариях, я думаю, что вам нужно как текущее время в объекте Date, так и строка с часами и минутами в формате "HH:MM"
.
Проблема связана с попыткойиспользуйте средство форматирования, для которого не указан год.Вы перезаписываете currentTime
из строки, для которой не определен год (или день, или месяц), поэтому по умолчанию используется значение 1 января 2000 года (часы и минуты должны быть правильными).
Вытакже говорите, что вам нужно отформатировать его в строку, а затем вернуться к объекту Date. Вы не , у вас уже есть все данные, которые вам нужны в объекте Date, поэтому сохраняйте их и используйте, когда вам это нужно.Если это означает создание группы DateFormatters
по всему проекту, вы всегда можете расширить Date
, чтобы иметь функцию или переменную, которая возвращает строку в нужном формате.
extension Date {
var hoursAndMinutesString: String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.timeZone = TimeZone.current
return dateFormatter.string(from: self)
}
}
Затем просто вызовитефункция из объекта Date, когда вам нужно, например:
currentTime.hoursAndMinutesString