您可以使用 elixir 二进制模式匹配来提取日期部分并使用 Timex 的 RFC1123 格式进行解析。 RFC1123 的格式为e.g Tue, 05 Mar 2013 23:25:19 +0200。在iex中运行h Timex.Format.DateTime.Formatters.Default查看其他格式。
iex> date_string = "Sun Feb 24 2019 14:44:20 GMT+0200 (Eastern European Standard Time)"
iex> <<day_name::binary-3,_,month_name::binary-3,_,day::binary-2,_,year::binary-4,_,time::binary-8,_::binary-4,offset::binary-5,_,rest::binary>> = date_string
iex> Timex.parse("#{day_name}, #{day} #{month_name} #{year} #{time} #{offset}", "{RFC1123}")
iex> {:ok, #DateTime<2019-02-24 14:44:20+02:00 +02 Etc/GMT-2>}
模式匹配:
二进制大小以字节大小为单位。 1 个字节 == 1 个字符。例如得到
3-character day_name 大小为 3。下划线 (_) 用于模式匹配日期格式中的空格
为简单起见,更新了使用 binary-size 而不是 bitstring-size 的答案