Ruby gem 电子表格以双精度返回日期

Ruby gem spreadsheet returning dates as doubles

我有一个方法可以遍历 excel 电子表格并将这些值放入数组中,然后放入 PostgreSQL 中。一切运行正常,但保存日期的单元格值以双精度值返回。我怎样才能得到日期值?另外,如果我不知道日期值何时会出现在 excel 电子表格中并且我希望我的方法仅在它是日期而不是另一个双精度时将双精度转换为日期,该怎么办。

@engineersmnky 评论和这个 post 帮助我弄明白了。 How to convert MS excel date from float to date format in Ruby?

require 'date'
require 'active_support/time'
puts (DateTime.new(1899,12,30) + 42153.days).strftime("%Y-%m-%d")
puts (Time.at( (42153 - 25569).days ).utc).strftime("%Y-%m-%d")

这些解决方案中的任何一个都有效。基本上 excel 将日期存储为双精度,你从双精度中减去一个设定的数字 excel 给你并将其转换为天数。