我正在使用一段天气硬件的日期时间来记录到.dbf文件。我可以从我正在使用的ruby脚本/ Web服务器中提取它,但是我得到了诸如
之类的数字41836.532638889
我不确定如何表示日期时间,因此很难知道如何解析它。我最好在Ruby中解析它,所以代码会是一个加号,但如果我知道它是如何表示的话,我可以弄明白该怎么做。
答案 0 :(得分:1)
日期是OLE自动化格式化日期,在Excel中很常见。正如Google所说的那样
An OLE Automation date is implemented as a floating-point number whose integral component is the number of days before or after midnight, 30 December 1899, and whose fractional component represents the time on that day divided by 24.
相应的Ruby代码是
def self.convert_time(t)
Time.at((t - 25569) * 86400).utc
end
减法将时间转移到unix时间开始的那一天(1970年1月1日)。 Unix时间以秒为单位,因此将天数转换为秒:24 * 60 * 60 = 86400。为方便起见,转换为utc时间。
答案 1 :(得分:0)
尝试Time.at(your_number / double)。然后,您可以根据需要对其进行格式化。
Time.at(41836.532638889)
=> 1970-01-01 12:37:16 +0100
答案 2 :(得分:0)
41836 - 从18/31/1899(零日期)过去的天数,532638889 - 从上述日期的午夜开始经过的秒数。