Rails 日期时间格式“dd/mm/yyyy”

6 ruby-on-rails ruby-on-rails-4

我收到这样的日期"14/04/17 07:00"

我只想得到这样的日期:14/04/2017

而且只有小时07:00

我尝试了这种方式,顺便说一句,我知道这是美国时间,它让我17/04/10

DateTime.parse(datetime).strftime("%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)

嗯,我在任何地方都找不到如何做到这一点?

感谢您的帮助

编辑

与建议:

my_date = DateTime.parse(datetime).strftime("%d/%m/%Y")

如果我在终端中这样做:

[1] pry(main)> O = Onduleur.last
  Onduleur Load (0.2ms)  SELECT  "onduleurs".* FROM "onduleurs" ORDER BY "onduleurs"."id" DESC LIMIT ?  [["LIMIT", 1]]
=> #<Onduleur:0x007fa6b70186e0
 id: 144,
 identifier: 2,
 datetime: "11/04/17 23:00",
 energy: 0,
 created_at: Wed, 12 Apr 2017 15:17:04 UTC +00:00,
 updated_at: Wed, 12 Apr 2017 15:17:04 UTC +00:00>
[2] pry(main)> my_date = DateTime.parse(O.datetime).strftime("%d/%m/%Y")
=> "17/04/2011"
[3] pry(main)>
Run Code Online (Sandbox Code Playgroud)

rad*_*dan 3

为了阅读,您可以使用strptime并指定格式:

datetime = "14/04/17 07:00"
DateTime.strptime(datetime, "%d/%m/%y %R")
=> Wed, 14 Apr 0017 07:00:00 +0000
Run Code Online (Sandbox Code Playgroud)

解释

%d - Day of the month, zero-padded (01..31)
%m - Month of the year, zero-padded (01..12)
%y - year % 100 (00..99)
%R - 24-hour time (%H:%M)
Run Code Online (Sandbox Code Playgroud)

要获取日期,您可以使用 DateTime 对象转换为 Date 对象to_date,或者.strftime("%d/%m/%Y")直接使用 DateTime 来获取 String。

[47] pry(main)> a
=> Fri, 14 Apr 2017 07:00:00 +0000
[48] pry(main)> a.to_date
=> Fri, 14 Apr 2017
[49] pry(main)> a.strftime("%d/%m/%Y")
=> "14/04/2017"
[50] pry(main)> a.strftime("%R")
=> "07:00"
Run Code Online (Sandbox Code Playgroud)

完整文档在这里strftime 文档上还提供了格式指令的完整列表