Я столкнулся с проблемой в Ruby on Rails. Я хочу преобразовать строку формата Вт, 10 августа 2010 01:20:19 -0400 (EDT)
в объект даты.
Могу ли я сделать это в любом случае.
Здесь это то, что я безуспешно искал и пробовал следующее:
Date.strptime (обновлено, "% a,% d% m% Y% H:% M:% S% Z")
Пожалуйста, помогите мне с этим.
Что не так с методом 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, то лучше использовать объект Время
, допустим, у нас есть строка:
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
Я не смог найти более простой метод для преобразования Время
в Дата
.
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
Должно быть:
Date.strptime(updated, '%a, %d %b %Y %H:%M:%S %Z')