Я новичок в Elixir, пытаясь перенести Rails API в Phoenix в качестве учебного проекта.
У меня есть поле времени Postgres, которое я добавил к схеме Ecto:
field :start_time, Ecto.Time
Проблема: Я хотел бы выпустить 12-часовую отформатированную версию времени, например 16:30, в виде строки: например, 16:30. У меня возникли проблемы с поиском простого/стандартного способа сделать это.
Это самое близкое мне решение:
def format_time(time) do
{:ok, {hours,minutes,y, z}} = Ecto.Time.dump(time)
{hour, ampm} = Timex.Time.to_12hour_clock(hours)
"#{hour}:#{minutes}#{ampm}"
end
Это похоже на смехотворный и смехотворный длинный фрагмент кода, который, как я полагаю, уже имеет более сжатую и стандартную реализацию; кроме того, у него возникает проблема вывода 2: 0pm вместо 2:00 вечера - форматирование 0 с завершающим нолем было дополнительно длинным и сложным фрагментом кода, над которым я работал, - в этот момент я начал чувствовать, что все идет путь назад.
Советы оценены!