On 12/14/06, Matt G. <mattismyname / gmail.com> wrote:
> Thanks Morton.  I did read date/format.rb and in 1.8.4 (what I'm running) it
> supports the %s format which I believe is supposed to represent the number
> of seconds since 1/1/1970.  The number I'm passing in represents the number
> of seconds since 1/1/1970.

It looks like a bug in date/format.rb to me.  It also works as you
expect in 1.9.  Try this patch:


--- format.rb.orig 2006-12-14 17:48:54.000000000 +1100 +++ format.rb 2006-12-15 13:35:23.000000000 +1100 @@ -1,6 +1,7 @@ # format.rb: Written by Tadayoshi Funaba 1999-2005 # $Id: format.rb,v 2.15 2005-02-06 13:28:48+09 tadf Exp $ +require 'time' require 'rational' class Date @@ -138,8 +139,14 @@ elem[:sec] = val when '%s' return unless str.sub!(/\A(\d+)/o, '') - val = $1.to_i - elem[:seconds] = val + time = Time.at($1.to_i) + elem[:year] = time.year + elem[:mon] = time.mon + elem[:mday] = time.mday + elem[:hour] = time.hour + elem[:min] = time.min + elem[:sec] = time.sec + elem[:offset] = time.utc_offset when '%T' return unless __strptime(str, '%H:%M:%S', elem) when '%t'