如何在Ruby 1.8.7中创建具有特定时间的Time对象?

Zab*_*bba 10 ruby

在Ruby 1.9.2中我们可以做到:

Time.new(2008,6,21, 13,30,0, "+09:00")
Run Code Online (Sandbox Code Playgroud)

如何在Ruby 1.8.7中做同样的事情?

Mik*_*key 10

根据您的需要,您可以使用Time.utc,Time.gm(Time.utc的同义词)或Time.local.这三个都采用参数来设定具体的时间和日期.

http://www.ruby-doc.org/core-1.8.7/classes/Time.html


Jam*_*est 5

如果我正确理解了这个问题,你试图通过传递+09:00偏移来设置时间的时区.在Ruby 1.8.7中,您可以使用的唯一时区是本地(系统)时间或UTC/GMT.

你可以做的是创建一个新的时间,相当于你想要的时间,但是以UTC而不是UTC + 9:

ruby-1.8.7-p302 :052 > Time.parse("2008-06-21 13:30:00 UTC") - 9*3600
 => Sat Jun 21 04:30:00 UTC 2008
Run Code Online (Sandbox Code Playgroud)

这是同一时间:

ruby-1.9.2-p0 :003 > Time.new(2008,6,21, 13,30,0, "+09:00").utc
 => 2008-06-21 04:30:00 UTC 
Run Code Online (Sandbox Code Playgroud)