DateTime.to_unix
You're seeing just the function
to_unix
, go back to DateTime module for more information.
Specs
to_unix(Calendar.datetime(), System.time_unit()) :: integer()
Converts the given datetime
to Unix time.
The datetime
is expected to be using the ISO calendar
with a year greater than or equal to 0.
It will return the integer with the given unit,
according to System.convert_time_unit/3
.
If you want to get the current time in Unix seconds,
do not do DateTime.utc_now() |> DateTime.to_unix()
.
Simply call System.os_time(:second)
instead.
Examples
iex> 1_464_096_368 |> DateTime.from_unix!() |> DateTime.to_unix()
1464096368
iex> dt = %DateTime{calendar: Calendar.ISO, day: 20, hour: 18, microsecond: {273806, 6},
...> minute: 58, month: 11, second: 19, time_zone: "America/Montevideo",
...> utc_offset: -10800, std_offset: 3600, year: 2014, zone_abbr: "UYST"}
iex> DateTime.to_unix(dt)
1416517099
iex> flamel = %DateTime{calendar: Calendar.ISO, day: 22, hour: 8, microsecond: {527771, 6},
...> minute: 2, month: 3, second: 25, std_offset: 0, time_zone: "Etc/UTC",
...> utc_offset: 0, year: 1418, zone_abbr: "UTC"}
iex> DateTime.to_unix(flamel)
-17412508655