mysql - 在保存到数据库之前将日期数据转换为正确的日期时间格式?

标签 mysql ruby-on-rails ruby screen-scraping

我经常从网站上抓取一些过时的数据并将其存储到 Rails 应用程序中,但网站上给出的日期采用以下格式:

11/25/2012 01

这是日期和时间。

我需要编写一些代码将其转换为默认的日期时间格式:

YYYY-MM-DD HH:MM:SS

但我是 Ruby 新手。

这是我当前使用 Nokogiri 抓取包含日期的元素并提取文本的代码,也许您可​​以以此为基础:

datedata = tr.css('td')[0].text

这会抓取日期表行并提取文本。例如,datedata = "11/25/2012 01"

是否有一种方法可以将datedata转换为默认的DateTime格式以保存到数据库中?仅供引用 - 小时是唯一给出的时间,它们是我的用例的必要数据,没有分钟或秒。

最佳答案

您可以使用DateTimestrptime功能

[1] pry(main)> DateTime.strptime("11/25/2012 01", "%m/%d/%Y %H")
=> Sun, 25 Nov 2012 01:00:00 +0000

这应该足以传递给 ActiveRecord,但如果您想将其转换为您在问题中提到的 SQL 日期时间字符串,您可以使用 Rails to_formatted_s使用 :db 选项。

[2] pry(main)> DateTime.strptime("11/25/2012 01", "%m/%d/%Y %H").to_formatted_s(:db)
=> "2012-11-25 01:00:00"

关于mysql - 在保存到数据库之前将日期数据转换为正确的日期时间格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133504/

相关文章:

Java - MySQL 不关闭连接

ruby-on-rails - 当我覆盖它的邮件程序时,Devise 正在发送带有空白正文的电子邮件

ruby-on-rails - ruby NoMethodError : undefined method `messages' for []:Array

ruby - Ruby 中的 Luhn 算法

ruby-on-rails - 返回率 |如何让 content_tags 嵌套?

php - 如何将 MySql 分层数据传递给 PHP 中的数组?

如果数据为 Null 或使用 CASE 语句为空,则 MySQl 查询 UPDATE

datetime - MySQL:过去 24 小时按小时插入的记录

ruby-on-rails - 我如何用 rspec 写这个

ruby - 如何将已构建的 Jekyll 站点推送到 GitHub?