我经常从网站上抓取一些过时的数据并将其存储到 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格式以保存到数据库中?仅供引用 - 小时是唯一给出的时间,它们是我的用例的必要数据,没有分钟或秒。
最佳答案
[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/