是否可以找出机器在Elixir中使用的日期格式?即dd / mm / yy或mm / dd / yy,以便我们可以相应地格式化日期字符串?
答案 0 :(得分:0)
您可以使用DateTime.utc_now
,然后格式化所需的日期:
iex(5)> d = DateTime.utc_now
#DateTime<2019-05-16 15:01:51.662814Z>
iex(6)> DateTime.to_string(d)
"2019-05-16 15:01:51.662814Z"
iex(7)> s = "#{d.year}/#{d.month}/#{d.day}"
"2019/5/16"
或者您可以像下面这样从:calendar.local_time
获取数据格式,然后将其打印到所需的所有内容中:
iex(12)> {{y, m, d},_} = :calendar.local_time()
{{2019, 5, 16}, {22, 4, 29}}
iex(13)> y
2019
iex(14)> m
5
iex(15)> d
16
答案 1 :(得分:0)
在“核心Elixir”中没有这样的功能,因为Elixir / Erlang不随语言环境数据一起提供,也不提供使用系统数据的API。取而代之的是,您需要自己获取CLDR数据并使用它,幸运的是,有ex_cldr
库可以为您执行此操作。另外,扩展名为ex_cldr_date_times
,它支持格式化日期。因此,最后,当您安装这两个库时,可以使用:
Cldr.DateTime.to_string(DateTime.utc_now)
要在当前语言环境中接收本地化的字符串。