2016-02-19 47 views
0

我的字符串是:"02-19-2016",日期格式为MM-DD-YYYY。它给一些场景适当的结果,但对于一些,它的失败像:日期格式在Ruby中无法正常工作

@query="02-19-2016" 
d, m, y = @query.split '-' 
# => ["02", "19", "2016"] 
Date.valid_date? y.to_i, m.to_i, d.to_i 
# => false 

有人可以提供任何解决方案吗?

回答

2

变化

d, m, y = @query.split '-' 

m, d, y = @query.split '-' 
+1

谢谢..它的工作:) – Neha

0
require 'date' 

m, d, y = '02-19-2016'.split('-').map(&:to_i) 
# => [2, 19, 2016] 

Date.valid_date? y, m, d 
# => true 

date = Date.civil(y, m, d) 
# => #<Date: 2016-02-19 ((2457438j,0s,0n),+0s,2299161j)> 
2

Date.strptime是通过建立一定的模式来解析字符串:

require 'date' 

Date.strptime("02-19-2016", '%m-%d-%Y') 
#<Date: 2016-02-19 ((2457438j,0s,0n),+0s,2299161j)>