2016-02-19 3 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)> 
Смежные вопросы