Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在elixir中以ISO 8601格式生成当前日期?_Elixir - Fatal编程技术网

如何在elixir中以ISO 8601格式生成当前日期?

如何在elixir中以ISO 8601格式生成当前日期?,elixir,Elixir,我需要生成一个与以下格式相同的当前时间字符串:20130524000000z 该示例是2013年5月24日星期五00:00:00 GMT的时间戳 我该怎么做?有没有一种方法可以在没有外部软件包的情况下完成这项工作?我已经成功地使用了以下代码: {{yy, mm, dd}, {hh, mi, ss}} = :calendar.universal_time "~.4.0w~.2.0w~.2.0wT~.2.0w~.2.0w~.2.0wZ" |> :io_lib.format([yy, mm, d

我需要生成一个与以下格式相同的当前时间字符串:
20130524000000z

该示例是2013年5月24日星期五00:00:00 GMT的时间戳


我该怎么做?有没有一种方法可以在没有外部软件包的情况下完成这项工作?

我已经成功地使用了以下代码:

{{yy, mm, dd}, {hh, mi, ss}} = :calendar.universal_time
"~.4.0w~.2.0w~.2.0wT~.2.0w~.2.0w~.2.0wZ"
|> :io_lib.format([yy, mm, dd, hh, mi, ss])
|> IO.iodata_to_binary

但也许有更好的方法?

更新2016-07-18

Elixir和up本机支持此功能:

iex> DateTime.utc_now() |> DateTime.to_iso8601()
"2016-07-18T21:49:08.132428Z"
原件2015-12-01(2016-07-18增加版本差异,谢谢@sebastian_k)

如果您不介意使用外部库,您可以使用优秀的库:

()

()

()

从v3(2016年7月)开始,现在应该是
Timex.now |>Timex.format(“{ISO:Extended:Z}”)
,或者
Timex.now(“欧洲/阿姆斯特丹”)|>Timex.format(“{ISO:Extended:Z}”)
iex> Timex.Date.local |> Timex.DateFormat.format("{ISOz}")
{:ok, "2015-12-01T09:40:44.716Z"}
iex> Timex.DateTime.local() |> Timex.format("{ISOz}")
{:ok, "2015-12-01T09:40:44.716Z"}
iex> Timex.now() |> Timex.format("{ISO:Extended:Z}")
{:ok, "2015-12-01T09:40:44.716417ZZ"}