Что не так с методом Date.parse
?
str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
date = Date.parse str
=> #<Date: 4910837/2,0,2299161>
puts date
2010-08-10
Кажется, работает.
Единственная проблема здесь - это часовой пояс. Если вам нужна дата в часовом поясе UTC, тогда лучше использовать объект Time
, предположим, что у нас есть строка:
str = "Tue, 10 Aug 2010 01:20:19 +0400"
puts Date.parse str
2010-08-10
puts Date.parse(Time.parse(str).utc.to_s)
2010-08-09
Я не смог найти более простой способ преобразования Time
в Date
.