【问题标题】:Rails undefined method `[]' for 2011-03-16 18:58:00 UTC:Time2011-03-16 18:58:00 UTC:Time 的 Rails 未定义方法“[]”
【发布时间】:2011-03-16 20:39:27
【问题描述】:

ruby​​ 和 rails 的新手……也许我正在为自己做更多的工作……但无法将时区更改为本地时区,我决定解析日期和时间并将其用于我自己的目的。除了子字符串不适合我。

<% ds = thejob.datestamp 
       dsyy = ds[0,4]
       dsmm = ds[5,2]   
       dsdd = ds[8,2]   
       dshrs = ds[11,2]   
       dsmin = ds[14,2]   
       dssec = ds[17,2]   
       dstz = ds[20,2] %>

导致错误:

undefined method `[]' for 2011-03-16 18:58:00 UTC:Time

【问题讨论】:

  • 你在config/application.rb中设置了本地时区吗?
  • 不错!这就是我一直在寻找的。​​span>

标签: ruby-on-rails datetime string


【解决方案1】:

您确定datestamp 实际上是一个字符串,而不是Time 类型值吗?

根据Ruby date/time documentation 判断,您可能只需要:

local = thejob.datestamp.getlocal

【讨论】:

    【解决方案2】:
    ds = thejob.datestamp 
    dsyy = ds.year
    dsmm = ds.month   
    dsdd = ds.day  
    dshrs = ds.hour
    dsmin = ds.min
    dssec = ds.sec  
    dstz = I don't remember
    

    【讨论】:

    • 谢谢...我最终使用了 .strftime("%Y-%m-%d %H:%M:%S")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-28
    • 2021-06-23
    • 2018-06-08
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2014-04-04
    相关资源
    最近更新 更多