2015-04-07 8 views
2

я должен преобразовать время из этого формата в этом например: 02/16/2015: 19: 16: 07 # => 20150216191607 я написал такой код:рубин дата и время преобразования из одного формата в другой

def convert_date(old_date) 
    new_date = old_date[6..9] + old_date[0..1]+old_date[3..4]+old_date[11..12]+old_date[14..15] + old_date[17..18] 
    return new_date 
end 

Но я слышал о классе времени и даты в рубине, которые обеспечивают метод синтаксического анализа и strftime, чтобы сделать это элегантно. Я попробовал это и могу получить дату и время, отформатированные отдельно, но не вместе в формате, который я хочу. Может ли кто-нибудь указать использование моего формата

ответ

1
require 'date' 

def convert_date(old_date) 
    DateTime.strptime(old_date, '%m/%d/%Y:%H:%M:%S').strftime("%Y%m%d%H%M%S") 
end 

convert_date('02/16/2015:19:16:07') 
    #-> 20150216191607 
+0

Thanks Cary! не знал о DateTime –

+0

Примечание 'DateTime.superclass # => Date'. Вместо этого вы можете написать 'require 'time''; Time.strptime .... '. –

Смежные вопросы