Datetime Elixir 1.5日期时间比较
在我的应用程序中,我需要设置操作超时。多亏了Timex库,这很容易做到 不幸的是,我犯了一个奇怪的错误。我挖了一下,发现了这个:Datetime Elixir 1.5日期时间比较,datetime,elixir,Datetime,Elixir,在我的应用程序中,我需要设置操作超时。多亏了Timex库,这很容易做到 不幸的是,我犯了一个奇怪的错误。我挖了一下,发现了这个: iex(55)> dt = Timex.now() |> Timex.add( Timex.Duration.from_seconds( 10)) #DateTime<2017-12-13 18:32:30.922418Z> iex(56)> DateTime.utc_now()
iex(55)> dt = Timex.now() |> Timex.add( Timex.Duration.from_seconds( 10))
#DateTime<2017-12-13 18:32:30.922418Z>
iex(56)> DateTime.utc_now()
#DateTime<2017-12-13 18:32:22.411246Z>
iex(57)> dt <= DateTime.utc_now()
false
iex(58)> dt <= DateTime.utc_now()
false
iex(59)> dt <= DateTime.utc_now()
false
iex(60)> dt <= DateTime.utc_now()
false
iex(61)> dt <= DateTime.utc_now()
false
iex(62)> dt <= DateTime.utc_now()
false (!)
iex(63)> dt <= DateTime.utc_now()
true (!)
iex(64)> dt <= DateTime.utc_now()
false (!)
iex(65)> dt <= DateTime.utc_now()
false
iex(66)> dt <= DateTime.utc_now()
false
不能将比较运算符与
DateTime
一起使用。对于这些操作符来说,DateTime
struct只是一个映射,它不会比较您想要比较的DateTime
s(年、月、日等)的方式。您可以为此使用:
iex(1)> {:ok, dt1, 0} = DateTime.from_iso8601("2017-12-13 18:32:30.922418Z")
{:ok, #DateTime<2017-12-13 18:32:30.922418Z>, 0}
iex(2)> {:ok, dt2, 0} = DateTime.from_iso8601("2017-12-13 18:32:22.411246Z")
{:ok, #DateTime<2017-12-13 18:32:22.411246Z>, 0}
iex(3)> DateTime.compare(dt1, dt2)
:gt
iex(4)> DateTime.compare(dt2, dt1)
:lt
iex(1)>{:ok,dt1,0}=DateTime.from_iso8601(“2017-12-13 18:32:30.922418Z”)
{:好的,#DateTime,0}
iex(2)>{:ok,dt2,0}=DateTime.from_iso8601(“2017-12-13 18:32:22.411246Z”)
{:好的,#DateTime,0}
iex(3)>日期时间比较(dt1、dt2)
:gt
iex(4)>日期时间比较(dt2,dt1)
:lt
您不能将比较运算符与DateTime
一起使用。对于这些操作符来说,DateTime
struct只是一个映射,它不会比较您想要比较的DateTime
s(年、月、日等)的方式。您可以为此使用:
iex(1)> {:ok, dt1, 0} = DateTime.from_iso8601("2017-12-13 18:32:30.922418Z")
{:ok, #DateTime<2017-12-13 18:32:30.922418Z>, 0}
iex(2)> {:ok, dt2, 0} = DateTime.from_iso8601("2017-12-13 18:32:22.411246Z")
{:ok, #DateTime<2017-12-13 18:32:22.411246Z>, 0}
iex(3)> DateTime.compare(dt1, dt2)
:gt
iex(4)> DateTime.compare(dt2, dt1)
:lt
iex(1)>{:ok,dt1,0}=DateTime.from_iso8601(“2017-12-13 18:32:30.922418Z”)
{:好的,#DateTime,0}
iex(2)>{:ok,dt2,0}=DateTime.from_iso8601(“2017-12-13 18:32:22.411246Z”)
{:好的,#DateTime,0}
iex(3)>日期时间比较(dt1、dt2)
:gt
iex(4)>日期时间比较(dt2,dt1)
:lt