web-dev-qa-db-fra.com

Analyser une date en rails

J'ai une date (qui est en fait analysée à partir d'un PDF) et elle pourrait être l'un des formats suivants:

MM/DD/YYYY
MM/DD/YY
M/D/YY
October 15, 2007
Oct 15, 2007 

Existe-t-il une gemme ou une fonction disponible dans Rails ou Ruby pour analyser ma date? Ou dois-je l'analyser en utilisant l'expression régulière?)

BTW J'utilise Ruby on Rails 3.2.

27
Sachin Prasad

Vous pouvez essayer Date.parse(date_string) .

Vous pouvez également utiliser Date#strptime si vous avez besoin d'un format spécifique:

> Date.strptime("10/15/2013", "%m/%d/%Y")
=> Tue, 15 Oct 2013

Pour une solution générale:

format_str = "%m/%d/" + (date_str =~ /\d{4}/ ? "%Y" : "%y")
date = Date.parse(date_str) rescue Date.strptime(date_str, format_str)
63
Chris Heald

Je trouve la gemme chronique très facile à utiliser pour l'analyse du temps et elle devrait fonctionner pour vous. j'ai essayé les exemples que vous avez donnés.

https://github.com/mojombo/chronic

6
beanie