Эликсир: формат локальной системы - PullRequest
0 голосов
/ 16 мая 2019

Можно ли узнать формат даты, который машина использует в Elixir?т.е. дд / мм / гг или мм / дд / гг, чтобы мы могли соответственно отформатировать строку даты?

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

В "core Elixir" нет такой функциональности, поскольку Elixir / Erlang не поставляется с данными локалей и не предоставляет API для использования системных данных. Вместо этого вам нужно самостоятельно получить данные CLDR и использовать их, к счастью, есть библиотека ex_cldr, которая сделает это за вас. Кроме того, есть расширение ex_cldr_date_times, которое поддерживает форматирование дат. Итак, в конце концов, когда вы устанавливаете обе эти библиотеки, вы можете использовать:

Cldr.DateTime.to_string(DateTime.utc_now)

Для получения локализованной строки в текущей локали.

0 голосов
/ 16 мая 2019

Вы можете использовать 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
...