【问题标题】:What is the best way to get the Date object for the timestamp 1224642020?获取时间戳 1224642020 的 Date 对象的最佳方法是什么?
【发布时间】:2011-05-17 12:49:50
【问题描述】:

在 Ruby 中,获取时间戳为 1224642020 的 Date 对象的最佳方法是什么?

【问题讨论】:

    标签: ruby datetime date time timestamp


    【解决方案1】:

    Ruby 的 Time 类有一个 at 方法,可以完全满足您的需求。如果您在 Rails 中,ActiveSupport 会添加一个 *to_date* 方法,该方法会将它们全部转换并为您提供 Date 的实例。

    date = Time.at(1224642020).to_date
    

    否则,可以通过strftimeDateparse

    进行转换
    date = Date.parse(Time.at(1224642020).strftime('%Y/%m/%d'))
    

    【讨论】:

    • 感谢您的快速答复!我刚刚在Ruby Documentation for Time 中发现了这一点,并出于我的目的决定使用Time.at(1224642020).strftime("%Y-%m-%d"),但是您完全按照我的要求回答了这个问题。谢谢!
    • 哦,不客气!我忘记了在 to_date 方法中添加了 ActiveSupport,所以我刚刚修改了答案以添加替代实现。幸运的是,这正是你正在做的 :)
    • 在 ruby​​ 1.9.2 中,#to_date 不需要 ActiveSupport。
    • @steenslag 你确定吗?我在 RVM ruby​​-1.9.2-p0 上尝试了 Time.now.to_date 并得到未定义的方法错误。
    • @MattDiPasquale 您必须要求“日期”才能使#to_date 工作。
    【解决方案2】:
    Time.at(122...)
    

    不确定如何将其转换为日期。

    【讨论】:

    • 添加.to_date。最小意外原则。或者,正如我想说的,尝试什么是有意义的,它最有可能奏效的原则。
    • 马克,to_date 可以在 Rails 中工作,不确定 Ruby 1.9,在 Ruby 1.8.7 中不工作。
    猜你喜欢
    • 2011-04-22
    • 2020-07-07
    • 2020-11-13
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多