如何强制Time.rfc2822
函数吐出+0000
?
Ruby 让我可以很容易地解析RFC2822格式的时间:
require 'time'
time = Time.parse('14 Aug 2009 09:28:32 +0000')
puts time
=> "2009-08-14 05:28:32 -0400"
但是显示时间呢?请注意,它解析的时间是本地时间。不用担心,我可以将其转换回 UTC 时间gmtime
:
puts time.gmtime
=> "2009-08-14 09:28:32 UTC"
然后我可以把它放回 RFC2822 格式:
puts time.gmtime.rfc2822
=> "Fri, 14 Aug 2009 09:28:32 -0000"
不幸的是,这不是我想要的。请注意,+0000
现在是-0000
。根据 RFC2822,这是因为:
应该使用“+0000”形式来表示世界时的时区。尽管“-0000”也表示世界时间,但它用于表示时间是在可能位于世界时以外的本地时区的系统上生成的,因此表示日期时间不包含有关本地时间的信息区。
+0000
太好了 - 那么除了猴子修补功能之外,我还能如何强制rfc2822
?