【问题标题】:How to convert date in format 09-feb-73 to 02/09/1973 (mm/dd/yyyy) using Ruby on Rails如何使用 Ruby on Rails 将 09-feb-73 格式的日期转换为 02/09/1973 (mm/dd/yyyy)
【发布时间】:2011-10-17 10:08:56
【问题描述】:

如何使用 Ruby on Rails 将 09-feb-73 格式的日期转换为 02/09/1973 (mm/dd/yyyy)?

【问题讨论】:

    标签: ruby-on-rails ruby datetime


    【解决方案1】:

    如果您在视图中需要此功能,我建议您使用本地化,因为您可以根据用户的本地设置轻松更改行为并保持控制器代码整洁(控制器为什么要关心日期格式?)。示例:

    # config/locales/en.yml
    en:
      time:
        formats:
          short: "%m/%d/%Y"
    
    
    # view file
    <%=l Time.now, :format => :short %>
    

    有关 Rails 本地化的更多信息,请参阅Rails Guide

    【讨论】:

      【解决方案2】:

      Valid Ruby datetime formats

      Date.strptime("09-feb-73", "%d-%b-%y").strftime("%m/%d/%Y")
      

      请注意,strptime 是 Rails 的一部分。这些是使用的相关格式:

      %b - 月份的缩写名称(“Jan”)

      %d - 一个月中的哪一天 (01..31)

      %m - 一年中的月份 (01..12)

      %y - 没有世纪的年份 (00..99)

      %Y - 带世纪的年份

      【讨论】:

        【解决方案3】:

        Date.strptime("09-feb-73", "%d-%b-%y").strftime("%m/%d/%Y")
        日期格式:http://snippets.dzone.com/posts/show/2255

        【讨论】:

          【解决方案4】:

          您可以使用Date.parseDate#strftime

          d = Date.parse('09-feb-73').strftime('%m/%d/%Y')
          # "02/09/1973"
          

          您也可以使用Date.strptime 代替Date.parse

          d = Date.strptime('09-feb-73', '%d-%b-%y').strftime('%m/%d/%Y')
          # "02/09/1973"
          

          strptime 的优点是你可以指定格式而不是让parse 去猜测。

          【讨论】:

          • 我得到的结果是 02/09/0073
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-24
          • 1970-01-01
          • 2019-02-12
          • 1970-01-01
          相关资源
          最近更新 更多