Как разобрать разные строки даты в Ruby - PullRequest
0 голосов
/ 08 апреля 2019

Я застрял в вопросе.Как преобразовать строки даты:

["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]

в:

["20100330", "20161215", "20121215", "20130720"]

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Большинство можно проанализировать с помощью Date.parse.Но он не понимает их всех.

2.4.4 :013 > Date.parse("11-15-2012")
ArgumentError: invalid date
    from (irb):13:in `parse'
    from (irb):13
    from /Users/schwern/.rvm/rubies/ruby-2.4.4/bin/irb:11:in `<main>'

Для любого, кого он не понимает, вы можете спастись от ArgumentError и попробовать свой собственный анализ с strptime .

require 'date'

def parse_date(date)
  Date.parse(date)
rescue ArgumentError
  Date.strptime(date, '%m-%d-%Y')
end

dates = ["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]
puts dates.map { |date| parse_date(date) }
0 голосов
/ 08 апреля 2019
dates = ["2010/03/30", "15/12/2016", "11-15-2012", "20130720"]
dates = dates.map{|date| date.tr("/-","")} # runs through every string in the array and replaces the stuff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...