Elixir:本地系统日期格式

时间:2019-05-16 14:43:47

标签: date elixir locale

是否可以找出机器在Elixir中使用的日期格式?即dd / mm / yy或mm / dd / yy,以便我们可以相应地格式化日期字符串?

2 个答案:

答案 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)

要在当前语言环境中接收本地化的字符串。