Date formatting bug?

Why does the year get changed in this code?

require 'date'
s = '2998-12-31'
date = Date.parse(s)
f = date.strftime('%d-%b-%G')
puts f

The output is 31-Dec-2999.
This doesn't seem to happen with earlier years.
This happens with Ruby 1.8.6 and JRuby 1.2.0RC2.

···

--
Posted via http://www.ruby-forum.com/.

It's because you asked for %G. If you wanted the actual year component
of the date, you would have used %Y. man strftime...

m.

···

Mark Volkmann <mark@ociweb.com> wrote:

Why does the year get changed in this code?

require 'date'
s = '2998-12-31'
date = Date.parse(s)
f = date.strftime('%d-%b-%G')

--
matt neuburg, phd = matt@tidbits.com, Matt Neuburg’s Home Page
Leopard - http://www.takecontrolbooks.com/leopard-customizing.html
AppleScript - http://www.amazon.com/gp/product/0596102119
Read TidBITS! It's free and smart. http://www.tidbits.com