Elixir:
日付を比較する

How to (やり方)

Elixirでは、DateTime モジュールを使用して簡単に日付を比較できます。以下の例を参照してください。

# Elixir のインタラクティブシェルでの実行を想定
# 日付の作成
date1 = ~U[2023-03-15T14:30:00Z]
date2 = ~U[2023-10-22T18:45:00Z]

# 日付を比較
compare_result = DateTime.compare(date1, date2)

# 結果の出力
IO.puts(compare_result) # 出力は :lt (less than)、:gt (greater than)、または :eq (equal) のいずれか

# 比較例
IO.puts(DateTime.compare(~U[2023-03-15T14:30:00Z], ~U[2023-03-15T14:30:00Z])) # 出力: :eq
IO.puts(DateTime.compare(~U[2023-03-15T14:30:00Z], ~U[2021-01-01T00:00:00Z])) # 出力: :gt

Deep Dive (詳細な情報)

Elixirには、標準ライブラリである DateTime モジュールが搭載されています。これは、ElixirがErlangの上にビルドされているため、Erlangの強力な時間と日付の処理機能を利用できることを意味します。Erlangは通信システムでの利用を念頭に置いて開発されたため、時刻処理はその核となる機能の一つです。

日付の比較以外にも、DateTimeモジュールは日時の追加や差し引き、時差の取り扱いといった操作を簡単に行うことができます。また、DateTimeといった別のモジュールも使用して日付だけまたは時刻だけを取り扱うことも可能です。

実装の詳細では、内部でISO8601形式を扱い、構造体(%DateTime{})を使って日時データを表現します。これにより、パターンマッチングやElixirの他の機能とのシームレスな統合が可能になります。

See Also (関連情報)