如何格式化Ecto时间戳

时间:2017-04-10 23:57:25

标签: elixir ecto

我想在我的模板中使用Ecto在使用时自动创建的时间戳inserted_at的日期和月份2017-04-10 16:22:43

<%=i.inserted_at%>

截至今天,这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用https://github.com/bitwalker/timex,例如:

> {:ok, default_str} = Timex.format(datetime, "{ISO:Extended}")
{:ok, "2016-02-29T12:30:30.120+00:00"}

答案 1 :(得分:1)

Ecto时间戳使用为let newMap = NSEntityDescription.insertNewObject(forEntityName: "Map", into: managedObjectContext) newMap.setValue(mapName, forKey:"mapName") for member in self.markersArray { var coordinate = NSEntityDescription.insertNewObject(forEntityName: "Coordinate", into: managedObjectContext) coordinate.setValue(member.latitude, forKey: "latitude") coordinate.setValue(member.longitude, forKey: "longitude") coordinate.setValue(newMap, forKey: "map") } ,当iex中的表示形式为NaiveDateTime时,您可以显示此信息。

您可以使用elixir提供的NaiveDateTime

~N[]

例如,您可以将此表示逻辑包装到phoenix视图中。

顺便说一下,当你有更复杂的日期操作时,你可以使用date = "#{i.inserted_at.year}-#{i.inserted_at.month}-#{i.inserted_at.day}" time = "#{i.inserted_at.hour}-#{i.inserted_at.minute}-#{i.inserted_at.second}" date <> " " <> time deps。