Elixir:
Omvandla ett datum till en sträng
Hur gör man:
Elixir använder DateTime
modulen för hantering av datum. Följande är exempel på hur du kan konvertera ett datum till en sträng:
{:ok, dt_utc} = DateTime.now("Etc/UTC")
formatted_date = dt_utc |> DateTime.to_string()
IO.puts(formatted_date) # "2023-04-05 12:34:56.789Z"
För mer anpassade datumformat, använd Timex
biblioteket:
{:ok, dt_utc} = DateTime.now("Etc/UTC")
formatted_date = dt_utc |> Timex.format!("{YYYY}-{0M}-{0D} {0h}:{0m}:{0s}")
IO.puts(formatted_date) # "2023-04-05 12:34:56"
För att installera Timex
lägg till följande i din mix.exs
fil:
defp deps do
[
{:timex, "~> 3.7"}
]
end
Kör sedan mix deps.get
i terminalen för att installera paketet.
Djupdykning
Historiskt sett har datumhantering i programmering varit komplext på grund av zoner, format och kalendersystem. Med DateTime
modulen i Elixir, introducerad i version 1.3, har standardhanteringen av datum och tid blivit enklare och mer robust.
Alternativ till inbyggda funktioner inkluderar bibliotek som Timex
, som erbjuder utökad funktionalitet. Det låter dig hantera datum i olika format mer bekvämt och supportar flera kalendersystem.
När det gäller implementationen använder DateTime.to_string/1
ISO 8601-format som standard. Det garanterar att sträng representationen kan tolkas korrekt över olika system och programmeringsspråk.
Se även
- Elixir
DateTime
dokumentation: https://hexdocs.pm/elixir/DateTime.html - Timex dokumentation på Hexdocs: https://hexdocs.pm/timex/Timex.html
- ISO 8601-standarden på Wikipedia: https://en.wikipedia.org/wiki/ISO_8601