Ruby gem电子表格将日期返回为双精度数

时间:2015-05-26 19:33:52

标签: ruby excel postgresql gem spreadsheet

我有一个运行excel电子表格的方法,然后将这些值放入数组,然后放入PostgreSQL。一切运行正常,但保存日期的单元格值将作为双精度返回。我怎样才能获得日期值?另外,如果我不知道什么时候日期值会出现在excel电子表格中,我希望我的方法只有当它是一个日期而不仅仅是另一个双倍时才将双重转换为日期。

1 个答案:

答案 0 :(得分:0)

@engineersmnky评论和这篇帖子帮助我弄明白了。 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将日期存储为双精度数,并从双精度数中减去一组数字,并将其转换为天数。