Set the TZ environment variable...
$ ruby -e 'puts Time.now'
Sat Jan 15 20:49:10 -0800 2011
$ TZ=UTC ruby -e 'puts Time.now'
Sun Jan 16 04:49:20 +0000 2011
Ruby gets the time zone information from the host's operating system.
Most directly, it uses a C library API specified by C99 and Posix.
The implementation of that API is system-specific, on my Mac that means it consults /etc/localtime
unless there is a TZ environment variable.
It's about the same on Linux.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…