Я не нашел в "timex" ничего, что могло бы помочь
Документы Timex говорят, что вы можете использовать strftime
последовательности, например %H:%M:%S
, для разбора.Вот список символов strftime и их совпадений.
Вот строка формата, которую, я думаю, должен работать на javascript. Даты:
def parse_js_date() do
Timex.parse!("Sun Feb 24 2019 14:44:20 GMT+0200 (Eastern European Standard Time)",
"%a %b %d %Y %H:%M:%S GMT%z (%Z)",
:strftime)
end
К сожалению, %Z
не хочет совпадать с именем часового пояса,что заставляет Timex.parse!()
выплевывать ошибку.Похоже, что %Z
в Elixir соответствует только одному слову, например, сокращение часового пояса EET
.Поэтому мое простое, чистое решение испорчено.
Что вы можете сделать - отрубить имя часового пояса перед анализом строки даты:
def parse_js_date_string() do
[date_str|_tz_name] = String.split(
"Sun Feb 24 2019 14:44:20 GMT+0200 (Eastern European Standard Time)",
" (",
parts: 2
)
Timex.parse!(date_str,
"%a %b %d %Y %H:%M:%S GMT%z",
:strftime)
end
В iex:
~/elixir_programs/my$ iex -S mix
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
Compiling 1 file (.ex)
Interactive Elixir (1.6.6) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> My.parse_js_date_string()
#DateTime<2019-02-24 14:44:20+02:00 +02 Etc/GMT-2>
iex(2)>