gpt4 book ai didi

elixir - 在 Elixir 中格式化时间

转载 作者:行者123 更新时间:2023-12-03 23:24:25 25 4
gpt4 key购买 nike

我是 Elixir 的新手,试图将 Rails API 作为学习项目移植到 Phoenix。

我有一个 Postgres 时间字段,我已将其添加到 Ecto 方案中:

field :start_time, Ecto.Time

问题:我想输出一个 12 小时格式的时间版本,例如 16:30 作为字符串:4:30pm,例如。我一直无法找到一种简单/标准的方法来做到这一点。

这是我最接近的解决方案:
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 pm 的问题——用尾随零格式化 0 是我正在处理的又长又复杂的一段代码——在这一点上我开始觉得事情正在发生偏离轨道。

建议赞赏!

最佳答案

您可以使用 timex 的格式化工具因为您已经在使用它,但首先您需要更改您的 Ecto.TimeTimex.DateTime可以用这些格式化。

use Timex

{{0, 0, 0}, Ecto.Time.to_erl(time)}
|> Timex.Date.from
|> DateFormat.format!("{h12}:{0m} {am}")

关于elixir - 在 Elixir 中格式化时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com