Lau*_*ent 4 datetime elixir ecto phoenix-framework
我需要将包含有效UTC时间的字符串转换为一个字符串Ecto.DateTime,稍后我将以正确的格式将其插入到我的数据库中.我尝试过使用该Ecto.DateTime.cast(date)方法,但似乎没有用.该字符串Sat Aug 04 11:48:27 +0000 2012来自Twitter API.
我知道有些像Timex这样的库我还没有检查过.Elixir中是否有任何简单易用的解决方案?
Elixir或Erlang中没有用于解析DateTime此格式值的内置解决方案:
Sat Aug 04 11:48:27 +0000 2012
Run Code Online (Sandbox Code Playgroud)
你当然可以自己编写一个解析器,但它既不简短也不简单.您必须拆分字符串,获取日期和时间参数的值,将月份字符串转换为月份整数,解析时区,用Elixir/Erlang DateTime格式表示完整值,然后最终将其转换为Ecto.DateTime.请参阅以下链接:
使用Timex是这里的最佳选择.
它是一个写得很好的库,可以让你远离日期/时间内部运作的混乱.有了Timex,你可以像这样解析你的字符串:
"Sat Aug 04 11:48:27 +0000 2012"
|> Timex.parse!("%a %b %d %T %z %Y", :strftime)
|> Ecto.DateTime.cast!
# => #Ecto.DateTime<2012-08-04 11:48:27>
Run Code Online (Sandbox Code Playgroud)
注意:Timex内置了对许多常见DateTime格式的支持,我发现不支持Twitter发送的DateTime格式很奇怪 - 所以我为你写了一个.也许仔细检查你的字符串是否正确?另请参阅Timex 解析和格式化文档.
| 归档时间: |
|
| 查看次数: |
4187 次 |
| 最近记录: |