Tôi là người mới đến Elixir, đang cố gắng chuyển một API Rails sang Phoenix như một dự án học tập.Định dạng thời gian ở Elixir
Tôi có một Postgres thời gian lĩnh vực, mà tôi đã thêm vào một chương trình Ecto:
field :start_time, Ecto.Time
Vấn đề: Tôi muốn đầu ra một phiên bản được định dạng 12-giờ của một ví dụ như 16:30 như một chuỗi: 4:30 chiều. Tôi đã gặp khó khăn khi tìm cách dễ dàng/tiêu chuẩn để thực hiện việc này.
này là gần nhất tôi đã chưa đi đến một giải pháp:
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
Điều này có vẻ giống như một mảnh vô lý và nực cười dài của mã cho một cái gì đó tôi tưởng tượng đã có thực hiện ngắn gọn hơn và tiêu chuẩn; ngoài ra nó có vấn đề xuất ra 2: 0pm thay vì 2:00 pm - định dạng 0 với dấu 0 là đoạn mã dài và phức tạp mà tôi đang làm - vào thời điểm đó tôi bắt đầu cảm thấy như mọi thứ đang diễn ra đường tắt.
Tư vấn được đánh giá cao!
Đây là phiên bản sạch hơn của cùng một giải pháp mà tôi đã kết thúc, vì vậy các phút vẫn được định dạng kém là 2: 0pm thay vì 2:30 chiều. –
Cảm ơn Pawel đã giúp tôi giải quyết! –
Rất tiếc, đã quên mất điều đó. Bạn cần sử dụng chỉ thị định dạng '{0m}' cho phút để đệm bằng số không. –