Mel*_*emi 2 ruby datetime locale ruby-on-rails
我仍然对如何在Ruby中使用DateTime感到困惑.我想将GMT存储在数据库中,至少我认为我愿意.但是如何创建可用的本地化DateTime呢?
date = Date.new(2012, 11, 24)
=> #<Date: 2012-11-24 ((2456256j,0s,0n),+0s,2299161j)>
new_appt = DateTime.new(date.year, date.month, date.day, 10, 0, 0)
=> #<DateTime: 2012-11-24T10:00:00+00:00 ((2456256j,36000s,0n),+0s,2299161j)>
Run Code Online (Sandbox Code Playgroud)
此DateTime对象的GMT偏移量为+00:00.我希望它是-07:00或-08:00,具体取决于给定日期是否遵守夏令时.我可以添加最后一个参数(+7或+8),但如何计算?
有没有办法告诉日期时区偏移是什么(或将是什么)并将其纳入DateTime.new对象,以便可以正确存储(和检索)它?
有关更多信息,请参阅文档Time.
创建变量时,您可以使用Time.local,它将确定DST是否正确.例如,要创建约会,3.30 pm您可以:( 我当地时间是CST)
Time.local 2012, 10, 20, 15, 30
=> 2012-10-20 15:30:00 +0800
Run Code Online (Sandbox Code Playgroud)
当存储到数据库时,我建议存储为UTC,即,variable.utc然后如果需要再次向用户呈现,则只需variable.localtime再次调用.从内存来看,这使得在JavaScript等其他语言中使用时间非常简单.
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |