有些場合我們可能希望有特殊的格式來簡化資料顯示,Elixir 提供了 Sigil
例如內建的 Date sigil,底下是 Date struct
%Date{year: 2025, month: 9, day: 30}
使用 Sigil 之後變成
~D[2025-09-30]
~s(我們已經有可以用 "雙括號" 的字串,但是如果要在雙括號的字串裡面使用雙括號需要用`\"`來跳脫,如果使用 sigil 的話可以不加)
等於
"我們已經有可以用 \"雙括號\" 的字串,但是如果要在雙括號的字串裡面使用雙括號需要用`\"`來跳脫,如果使用 sigil 的話可以不加"
~w(elixir erlang gleam)
["elixir", "erlang", "gleam"]
Sigil 在後面可以加 modifiers (修飾符)
sigil_w 可以使用 a 來讓裡面的內容變成 atom
~w(elixir erlang gleam)a
[:elixir, :erlang, :gleam]
剛剛講的 Date
date = ~D[2025-09-30]
date.year #=> 2025
Time module 包含了 hour, minute, second, microsecond, calendar
~T[11:00:03.99]
沒有包含時區的日期時間,無法用來計算有日光節約時間這種時區限定的算法
~N[2025-03-22 12:00:00]
~U[2025-09-30 20:02:03Z] # Z 表示沒有偏移的 UTC 時間