Elixir datetime formats

How do I convert a date time data like {{2018, 4, 21}, {23, 1, 38, 540816}} to a DateTime (or to Posix)

{date_tuple, {hour, min, sec, micro_sec}} = {{2018, 4, 21}, {23, 1, 38, 540816}}
{date_tuple, {hour, min, sec}}
|> NaiveDateTime.from_erl!({micro_sec, 6})
|> DateTime.from_naive!("Etc/UTC")
|> DateTime.to_unix()

Thankyou!