ブログから転載
Elixir 1.3(正確には1.3.0-rc.0)から時間に関する構造体がいくつか定義されました。そのうちの3つ、Date
, Time
, NaiveDateTime
をつくるsigilが追加されています。それぞれ~D
, ~T
, ~N
です。
iexで~D(2016-06-04)
と打っても、そのまま表示されてしまい何が作られているのかよくわからないので、|> inspect(structs: false)
としています
iex> ~D(2016-06-04) |> inspect(structs: false)
"%{__struct__: Date, calendar: Calendar.ISO, day: 4, month: 6, year: 2016}"
iex> ~T(22:05:33) |> inspect(structs: false)
"%{__struct__: Time, hour: 22, microsecond: {0, 0}, minute: 5, second: 33}"
iex> ~N(2016-06-04 22:05:33) |> inspect(structs: false)
"%{__struct__: NaiveDateTime, calendar: Calendar.ISO, day: 4, hour: 22, microsecond: {0, 0}, minute: 5, month: 6, second: 33, year: 2016}"
6月や5分などの1桁の数字は、06
のようにゼロ埋めしていないとエラーになります。