2017-03-11 188 views
1

我有一个日期。使之成为该格式的通过时间我如何格式化:使用Timex格式化日期时间

Wed, 02 Oct 2002 15:00:00 +0200 

Wed, 02 Oct 2002 15:00:00 GMT 

Wed, 02 Oct 2002 15:00:00 EST 

我已经试过这样:

Timex.format!(my_date, "%D, %d %M %Y %H:%i:%s T", :strftime)) 

但它抛出了一个例外:

%Timex.Format.FormatError{message: {:format, "Expected end of input at line 1, column 16"}} (expected a string) 

虽然它正在转换为其他更简单的格式,没有错误。

+0

这格式字符串中有多处错误。 '%D'不是星期几,时区是'%Z'(或'%z'或其他,但不是'T')。请参阅https://hexdocs.pm/timex/Timex.Format.DateTime.Formatters.Strftime.html。 – Dogbert

回答

2

我相信你正在寻找RFC1123 DateTime格式:

iex(1)> Timex.now |> Timex.format!("{RFC1123}") 
"Sat, 11 Mar 2017 12:04:21 +0000" 
iex(2)> Timex.now |> Timex.to_datetime("America/Chicago") |> Timex.format!("{RFC1123}") 
"Sat, 11 Mar 2017 06:04:50 -0600" 
+0

是,对于RSS 2.0 – Kuqa

+0

http://stackoverflow.com/questions/9405309/how-to-properly-place-date-in-pubdate-element-on-rss-feed – Kuqa

+0

你知道为什么'“一% ,%d%b%Y%H:%M:%S%z“'给我”格式字符串无效,必须包含至少一个指令。“? – Kuqa