> -----Original Message-----
> From: Berger, Daniel [mailto:Daniel.Berger / qwest.com] 
> Sent: Tuesday, May 23, 2006 11:52 AM
> To: ruby-talk ML
> Subject: Fun with Time#to_s and locale
> 
> 
> Hi all,
> 
> I was futzing around with Time objects and locale.  Searching 
> the archives I didn't really see anything that let me get 
> Time objects back in the locale string that I want.
> 
> Did I reinvent the wheel?
> 
> require 'Win32API'
> 
> class Time
>    GetDateFormat = Win32API.new('kernel32', 'GetDateFormat', 'LLPPPL',
> 'I') 
> 
>    def to_s(lang=0)
>       buffer  = 0.chr * 100
>       systime = [year, mon, wday, day, hour, min, sec].pack('S*')
>       picture = 'dddd MMM dd yyyy' # Or change 'dddd' to 'ddd'
> 
>       if GetDateFormat.call(lang, 0, systime, picture, buffer,
> buffer.size) == 0
>          raise get_last_error
>       end
> 
>       buffer = buffer[ /^[^\0]*/ ]
> 
>       # Splice the hours, minutes and seconds in
>       buffer.split.insert(2, "#{hour}:#{min}:#{sec} 
> #{zone}").join(' ')
>    end
> end
> 
> if $0 == __FILE__
>    LANG_FRENCH  = 0x0c
>    LANG_GERMAN  = 0x07
>    LANG_SPANISH = 0x0a
> 
>    p Time.now.to_s                # "Tuesday May 11:48:51 MDT 23 2006"
>    p Time.now.to_s(LANG_GERMAN)   # "Dienstag Mai 11:48:51 
> MDT 23 2006"
>    p Time.now.to_s(LANG_SPANISH)  # "martes may 11:48:51 MDT 23 2006"
>    p Time.now.to_s(LANG_FRENCH)   # "mardi mai 11:48:51 MDT 23 2006"
> end
> 
> I've no idea how to do this on non-Windows systems.  Is there 
> an easier way?

Anyone? Anyone? Buehler? Buehler?

Dan


This communication is the property of Qwest and may contain confidential or
privileged information. Unauthorized use of this communication is strictly 
prohibited and may be unlawful.  If you have received this communication 
in error, please immediately notify the sender by reply e-mail and destroy 
all copies of the communication and any attachments.