Elixir:
Comparer deux dates

Comment faire :

# On utilise NaiveDateTime pour des dates sans fuseau horaire
date1 = ~N[2023-03-15 14:00:00]
date2 = ~N[2023-03-18 14:00:00]

# Comparer les dates directement
date1 < date2
# Résultat : true

# Calculer l'écart en secondes
DateTime.diff(date2, date1)
# Résultat : 259200

# Formater les dates si nécessaire
date1_formatted = NaiveDateTime.to_string(date1)
# Résultat : "2023-03-15 14:00:00"

Plongée profonde

Historiquement, Elixir, construit sur Erlang, simplifie la manipulation des dates. Avant Elixir 1.3, on s’appuyait sur des librairies tierces, mais maintenant, les modules NaiveDateTime et DateTime font partie de l’écosystème standard. Alternativement, on peut utiliser Timex, une librairie puissante pour le temps. La précision des comparaisons dépend de l’information temporelle disponible : sans fuseau horaire (NaiveDateTime) ou avec (DateTime).

Pour aller plus loin

Documentation Elixir officielle sur NaiveDateTime : https://hexdocs.pm/elixir/NaiveDateTime.html

Documentation Elixir officielle sur DateTime : https://hexdocs.pm/elixir/DateTime.html

GitHub de la librairie Timex : https://github.com/bitwalker/timex