erlang UTC和DateTime结构的Elixir时区比较

vjrehmav  于 2022-12-16  发布在  Erlang
关注(0)|答案(1)|浏览(138)

我试图比较两个日期时间,看看它们是否重叠。然而,一个是DateTime结构体,另一个是~U[]时间-这就是它们从数据库中出来的方式。我不知道如何做到这一点-如果我能在UTC中比较它们,同时保持时区意识,那就太好了。
我有两次是:start_datetime_1 = ~U[2022-03-31 11:15:00.000000Z]
starttime_2 = #DateTime<2022-03-31 11:15:00.000000+01:00 BST Europe/London>
我想做的事情是这样的:DateTime.compare(start_datetime_1, start_datetime_2 == :gt || :eq)
任何帮助将不胜感激!

yhuiod9q

yhuiod9q1#

~U[2022-03-31 11:15:00.000000Z]DateTime相同,但在UTC中。一个符号~U[]只是句法糖。
你可以用DateTime.compare/2做一个开箱即用的比较,它理解时区。

DateTime.compare(start_datetime_1, start_datetime_2) in [:gt, :eq]

相关问题