设置日期时间毫秒精度 - 长生不老药
set datetime milliseconds precision - elixir
我正在尝试获取亚秒部分只有 3 位数字的日期时间。
使用 timex 我得到以下结果:
iex(12)> {:ok, date} = Timex.format(Timex.shift(Timex.local, days: 16), "{ISO:Extended}")
{:ok, "2017-04-22T09:00:44.403879+03:00"}
我怎样才能得到这样的东西:
{:ok, "2017-04-22T09:00:44.403+03:00"} ?
DateTime
有一个 microsecond
字段,它是一个包含值和精度的元组。如果将精度更改为 3
,您将在微秒输出中获得 3 位数字。我在 Timex 中找不到执行此操作的任何函数,但您可以手动修改该值:
iex(1)> dt = %{microsecond: {us, precision}} = Timex.now
#<DateTime(2017-04-06T08:26:24.041004Z Etc/UTC)>
iex(2)> precision
6
iex(3)> dt2 = %{dt | microsecond: {us, 3}}
#<DateTime(2017-04-06T08:26:24.041Z Etc/UTC)>
iex(4)> dt2 |> Timex.format!("{ISO:Extended}")
"2017-04-06T08:26:24.041+00:00"
从 Elixir 1.6.0 开始,模块 Time[ 现在有 truncate/2 函数=20=]、DateTime 和 NativeDateTime :
iex(1)> dt = Timex.now()
#DateTime<2018-02-16 19:03:51.430946Z>
iex(2)> dt2 = DateTime.truncate(dt, :millisecond)
#DateTime<2018-02-16 19:03:51.430Z>
我正在尝试获取亚秒部分只有 3 位数字的日期时间。
使用 timex 我得到以下结果:
iex(12)> {:ok, date} = Timex.format(Timex.shift(Timex.local, days: 16), "{ISO:Extended}")
{:ok, "2017-04-22T09:00:44.403879+03:00"}
我怎样才能得到这样的东西:
{:ok, "2017-04-22T09:00:44.403+03:00"} ?
DateTime
有一个 microsecond
字段,它是一个包含值和精度的元组。如果将精度更改为 3
,您将在微秒输出中获得 3 位数字。我在 Timex 中找不到执行此操作的任何函数,但您可以手动修改该值:
iex(1)> dt = %{microsecond: {us, precision}} = Timex.now
#<DateTime(2017-04-06T08:26:24.041004Z Etc/UTC)>
iex(2)> precision
6
iex(3)> dt2 = %{dt | microsecond: {us, 3}}
#<DateTime(2017-04-06T08:26:24.041Z Etc/UTC)>
iex(4)> dt2 |> Timex.format!("{ISO:Extended}")
"2017-04-06T08:26:24.041+00:00"
从 Elixir 1.6.0 开始,模块 Time[ 现在有 truncate/2 函数=20=]、DateTime 和 NativeDateTime :
iex(1)> dt = Timex.now()
#DateTime<2018-02-16 19:03:51.430946Z>
iex(2)> dt2 = DateTime.truncate(dt, :millisecond)
#DateTime<2018-02-16 19:03:51.430Z>