【问题标题】:How to parse this text into a date format如何将此文本解析为日期格式
【发布时间】:2012-03-22 13:13:48
【问题描述】:

谁能告诉我如何在 Rails 中将此文本解析为日期格式?

2012 年 3 月 1 日星期四 11:49:16 +0000

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 datetime date


    【解决方案1】:

    从 Rails 控制台:

    [1] pry(main)> "Thu Mar 01 11:49:16 +0000 2012".to_time
    => 2012-03-01 11:49:16 UTC
    [2] pry(main)> "Thu Mar 01 11:49:16 +0000 2012".to_date
    => Thu, 01 Mar 2012
    [3] pry(main)> "Thu Mar 01 11:49:16 +0000 2012".to_datetime
    => Thu, 01 Mar 2012 11:49:16 +0000
    

    【讨论】:

    • 哇好棒。我没有意识到您可以使用正确格式的字符串来做到这一点。
    【解决方案2】:

    DateTime.parse("Thu Mar 01 11:49:16 +0000 2012")

    【讨论】:

      【解决方案3】:

      您可以将其解析为时间。然后转换为日期。

      require 'active_support/core_ext' # don't need this if on rails.
      
      s = 'Thu Mar 01 11:49:16 +0000 2012'
      
      t = Time.parse s
      puts t.to_date
      

      【讨论】:

        【解决方案4】:

        那个 .to_date 答案是这里问题的最佳答案。

        但仅供参考,对于其他格式,请查看 Chronic gem。

        Chronic.parse('tomorrow')
        #=> Mon Aug 28 12:00:00 PDT 2006
        
        Chronic.parse('monday', :context => :past)
        #=> Mon Aug 21 12:00:00 PDT 2006
        
        Chronic.parse('this tuesday 5:00')
        #=> Tue Aug 29 17:00:00 PDT 2006
        
        Chronic.parse('this tuesday 5:00', :ambiguous_time_range => :none)
        #=> Tue Aug 29 05:00:00 PDT 2006
        
        Chronic.parse('may 27th', :now => Time.local(2000, 1, 1))
        #=> Sat May 27 12:00:00 PDT 2000
        
        Chronic.parse('may 27th', :guess => false)
        #=> Sun May 27 00:00:00 PDT 2007..Mon May 28 00:00:00 PDT 2007
        

        https://github.com/mojombo/chronic

        【讨论】:

          猜你喜欢
          • 2018-07-10
          • 2020-12-16
          • 2016-05-17
          • 1970-01-01
          • 2019-09-13
          • 1970-01-01
          • 2014-09-26
          • 1970-01-01
          相关资源
          最近更新 更多