• rails ruby 时间 日期 处理


    Rails的ActiveSupport時間解析?

     

      English Language Content




    Rails的ActiveSupport時間解析?

    Rails的ActiveSupport模塊擴展時間內建的紅寶石級的一個數字的方法。

    值得注意的是,有一個to_formatted_s方法,它可以讓你寫Time.now.to_formatted_s(:db)得到一個字符串的數據庫格式,而不是寫醜惡strftime格式字符串無處不在。

    我的問題是,有沒有辦法倒退?

    大概是Time.parse_formatted_s(:db)將在解析數據庫格式字符串,返回一個新的時間對象。 這似乎事情應該提供軌道,但如果是,我找不到它。

    我只是沒有找到它,或者我是否需要將它寫自己?

    謝謝

    #: 354657     ruby    ruby-on-rails    activesupport    time    parsing     User: Orion Edwards

    Answer: 1474238

    它看起來像ActiveSupport確實提供了解析方法您正在尋找(我一直在尋找太),畢竟! -至少,如果您要字符串解析為標準,通過ISO - 8601格式( :db式)的日期。

    如果你想要的日期來分析已在您的本地時區,它真的很容易!

     > Time.zone.parse('2009-09-24 08:28:43') 
    => Thu, 24 Sep 2009 08:28:43 PDT -07:00
    > Time.zone.parse('2009-09-24 08:28:43').class
    => ActiveSupport::TimeWithZone

    而時區感知時間可以很容易地轉換為 UTC

     > Time.zone.parse('2009-09-24 08:28:43').utc 
    => 2009-09-24 15:28:43 UTC

    或其他時區:

     > ActiveSupport::TimeZone.us_zones.map(&:name) 
    => ["Hawaii", "Alaska", "Pacific Time (US & Canada)", "Arizona", "Mountain Time (US & Canada)", "Central Time (US & Canada)", "Eastern Time (US & Canada)", "Indiana (East)"]
    > Time.zone.parse('2009-09-24 08:28:43').utc.in_time_zone('Eastern Time (US & Canada)')
    => Thu, 24 Sep 2009 11:28:43 EDT -04:00

    如果你想要日期字符串解析是在星期六,另一方面,它看起來並不像有任何方法來分析它直接進入TimeWithZone,但我能夠解決這是第一次使用DateTime.strptime ...

    如果你想要的日期是在星期六來分析,你想讓它留為 UTC,可以使用:

     > DateTime.strptime('2009-09-24 08:28:43', '%Y-%m-%d %H:%M:%S').to_time 
    => 2009-09-24 08:28:43 UTC

    如果你想要的日期是在星期六來分析,你希望它轉換為您的默認時區,你可以使用:

     > DateTime.strptime('2009-09-24 08:28:43', '%Y-%m-%d %H:%M:%S').to_time.in_time_zone 
    => Thu, 24 Sep 2009 01:28:43 PDT -07:00

    它看起來像它甚至可以分析其它格式,如奇怪的格式,時間#to_s生產:

    irb -> Time.zone.parse('Wed, 23 Sep 2009 02:18:08').to_s(:db) 
    => "2009-09-23 09:18:08"
    irb -> Time.zone.parse('Wed, 23 Sep 2009 02:18:08 EDT').to_s(:db)
    => "2009-09-23 06:18:08"

    我很感動。

    下面是一些例子從http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html :

      Time.zone = 'Eastern Time (US & Canada)'        # => 'Eastern Time (US & Canada)' 
    Time.zone.local(2007, 2, 10, 15, 30, 45) # => Sat, 10 Feb 2007 15:30:45 EST -05:00
    Time.zone.parse('2007-02-01 15:30:45') # => Sat, 10 Feb 2007 15:30:45 EST -05:00
    Time.zone.at(1170361845) # => Sat, 10 Feb 2007 15:30:45 EST -05:00
    Time.zone.now # => Sun, 18 May 2008 13:07:55 EDT -04:00
    Time.utc(2007, 2, 10, 20, 30, 45).in_time_zone # => Sat, 10 Feb 2007 15:30:45 EST -05:00

    更多文檔的鏈接以供參考:


    • api.rubyonrails.org /班/ ActiveSupport / TimeWithZone.html

    • api.rubyonrails.org /班/ ActiveSupport / TimeZone.html

      哎呀! 您的編輯無法提交,是因為:

      * sorry, new users can only post a maximum of one hyperlink 

    嗯,好吧,我想我不會鏈接到這些網址,然後。 我不知道它為什麼認為我是一個“新用戶”之中。

    #: 1474238     ruby    ruby-on-rails    activesupport    time    parsing     User: Tyler Rick

    Comments for #: 1474238

    另外,請查閱: 
    http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html 
    http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html   #:1324034  Tyler Rick
    感謝這麼多的細節公佈。 您DateTime.strptime()引用是非常有用的情況下,我需要分析一個過時的數據庫的ActiveRecord::Base.connection.select_value()返回一個字符串。   #:1536376  Lee

    Answer: 1475032

    >> "2009-09-24".to_date 
    => Thu, 24 Sep 2009
    >> "9/24/2009".to_date
    => Thu, 24 Sep 2009

    除非你的偉大工程的日期是在一些怪異的格式。

    #: 1475032     ruby    ruby-on-rails    activesupport    time    parsing     User: eremite

    Answer: 354753

    本次會談的有關分析在Rails

    #: 354753     ruby    ruby-on-rails    activesupport    time    parsing     User: J Cooper

    Comments for #: 354753

    謝謝。 
    該職位指出,路軌本身使用的ActiveRecord::ConnectionAdapters::列#string_to_date(可重寫根據您的數據庫)。 事實上,它這一點,否則回退到ParseDate意味著鐵軌不提供的功能像我要找的   #:186750  Orion Edwards
    我們現在可以告訴大家,護欄不提供此功能,這是回答這個問題。 我會寫一個自己:-)   #:186753  Orion Edwards
    0.1179.1.96
    Dump from StackOverflow
  • 相关阅读:
    keepalived的一些。。
    virtualbox复制了以后网卡启动不了。
    mysql安装之后需要调的参数
    mysql5.6 thread pool
    $releasever 不正确解析
    linux 被入侵后扫尾工作
    简单启动脚本编写
    tcmalloc安装
    rsyslog及loganalyzer
    nsswitch & pam
  • 原文地址:https://www.cnblogs.com/lexus/p/1900305.html
Copyright © 2020-2023  润新知