Преобразование строки из Ruby в дату

Я столкнулся с проблемой в Ruby on Rails. Я хочу преобразовать строку формата Вт, 10 августа 2010 01:20:19 -0400 (EDT) в объект даты.

Могу ли я сделать это в любом случае.

Здесь это то, что я безуспешно искал и пробовал следующее:

  1. Date.strptime (обновлено, "% a,% d% m% Y% H:% M:% S% Z")
  2. Хронический Parser
  3. Ruby: преобразовать строку в дату
  4. Анализ даты из текста с использованием Ruby

Пожалуйста, помогите мне с этим.

68
задан Community 23 May 2017 в 12:02
поделиться

2 ответа

Что не так с методом 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

Я не смог найти более простой метод для преобразования Время в Дата.

129
ответ дан 24 November 2019 в 14:11
поделиться
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")

Должно быть:

Date.strptime(updated, '%a, %d %b %Y %H:%M:%S %Z')
13
ответ дан 24 November 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: