Как parsear цепь времени со Свифтом 3?

У меня есть цепь этого типа: "18:00:00" и я нуждаюсь parsearla со Свифтом 3, чтобы мочь показывать ее в более стилизуемом формате, например: "6:00 pm". Я использовал DateFormatter с форматом "hh:mm:ss" но он это не конвертирует.

let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "hh:mm:ss"

if let tiempo = timeFormatter.string(from: "18:00:00")
{
    print(tiempo)
}
else
{
    print("No se pudo")
}
1
задан 17.01.2017, 19:48
0 ответов

Формат, который ты был бы должен использовать в этом случае, "HH:mm:ss".

Потом, чтобы конвертировать в новый формат, ты можешь использовать другой formatter:

let toFormatter = DateFormatter()
toFormatter.dateFormat = "h:mm a"
print(toFormatter.string(from: tiempo))

Вывод для этого примера:

6:00 PM

Форматы документировались в Date Форматтинг Гиде (на английском).

1
ответ дан 03.12.2019, 17:38
  • 1
    Большое спасибо! Funcionó совершенный, когда бы то ни было habí в работаемый с датами и временами, сегодня aprendí что-то новое :) –  17.01.2017, 19:51