我收到"14/04/17 07:00"
我想只得到这样的日期:14/04/2017
只有小时07:00
我试过这种方式,BTW我知道这是美国时间,它让我17/04/10
DateTime.parse(datetime).strftime("%d/%m/%Y")
Humm我找不到任何地方怎么做?
感谢您的帮助
提出建议:
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)>
答案 0 :(得分:0)
要阅读,您可以使用strptime
并指定格式:
datetime = "14/04/17 07:00"
DateTime.strptime(datetime, "%d/%m/%y %R")
=> Wed, 14 Apr 0017 07:00:00 +0000
解释
%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)
要获取日期,您可以使用to_date
将DateTime对象转换为Date对象,或者直接在DateTime上使用.strftime("%d/%m/%Y")
来获取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"
完整文档here。此外,strftime docs
还提供了完整的格式指令列表答案 1 :(得分:0)
您可以使用所需数据设置变量
datetime = "2017-04-12 10:30:14"
my_date = DateTime.parse(datetime).strftime("%d/%m/%Y")
my_hour = DateTime.parse(datetime).strftime("%H:%M")
puts my_date
puts my_hour
输出:
2017年12月4日
10:30
修改强>
如果您有此格式日期( 11/04/2017 23:00 ),您可以尝试使用.to_time
方法
require 'active_support/core_ext/string'
datetime2 = "11/04/2017 23:00".to_time
my_date2 = datetime2.strftime("%d/%m/%Y")
my_hour2 = datetime2.strftime("%H:%M")
puts my_date2
puts my_hour2