Date formatting bug?


#1

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.


#2

Mark V. removed_email_address@domain.invalid 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’)

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.