Мне нужно преобразовать несколько двоичных файлов ASCII в MySQL. Эти файлы и записи содержат несколько 6-значных полей, представляющих даты в форме 090403 (гггмм), и я хотел бы преобразовать их в 2009-04-03. Как мне создать объект даты с этим вводом?
Вам нужен модуль ParseDate:
require 'parsedate' # => true res = ParseDate.parsedate("090403") # => [9, 4, 3, nil, nil, nil, nil, nil] Time.local(*res) # => Fri Apr 03 00:00:00 +0100 2009
(a) Класс даты имеет метод strptime
d = Date.strptime("090403", "%d%m%y")
Это дает вам стандартный класс Дата
(b) Стандартная библиотека имеет метод parsedate
require 'parsedate' pd = ParseDate.parsedate("090403") Time.local(pd)
Это дает вам класс времени
Я предпочитаю использовать Время.
require 'time' Time.parse("090403").strftime("%Y-%m-%d")
> d = Date.strptime("090403", "%y%m%d") => #<Date: 4909849/2,0,2299161> > puts d 2009-04-03
Вы можете использовать метод DateTime.strptime .