`
mlzboy
  • 浏览: 704769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

Search

 

Bookmark

相关推荐

    Ruby-validatestimelinessActiveModel和Rails的日期与时间验证插件

    validates_timeliness - ActiveModel和Rails的日期与时间验证插件,持多个ORM和允许自定义日期/时间格式。

    Ruby-localtimeRails引擎向用户用当地时间格式来显示时间和日期

    local_time - Rails引擎向用户用当地时间格式来显示时间和日期

    validates_timeliness:ActiveModel和Rails的日期和时间验证插件。 支持多个ORM,并允许自定义日期时间格式

    完全验证Rails 4.x和Rails 5.0的日期,时间和日期时间。 这是的叉子,带有和补丁。 我添加了与各种Rails 4.x版本以及STI和性能修复程序的其他兼容性。 特征 将日期,时间和日期时间的验证添加到ActiveModel 处理...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    16.6 时间和日期的扩展 208 16.7 Ruby符号的扩展 210 16.8 with_options 211 16.9 Unicode支持 211 第17章 数据迁移 215 17.1 创建和运行迁移任务 216 17.2 剖析迁移任务 218 17.3 表的管理 221 17.4 数据迁移任务 ...

    权限:*目前未维护*。 授权可以帮助您授权Rails应用程序中的操作。 它是ORM中立的,语法很少。 只需将模型分组到一个或多个Authorizer类下,并在其上编写普通的Ruby方法

    内容 可以轻松实现) 单独的单点登录应用中的角色用户积分(如StackOverflow) 时间和日期天气,股票价格,用户名中的元音或其他您可以使用Ruby查看的内容您要做的就是定义授权者所需的方法。 您具有普通Ruby类的...

    TimeExtensions.zip

    TimeExtensions 是使用 Swift 编写的库,提供一个优雅而简单的,易于理解的处理时间的语法,灵感大部分来源于 Ruby on Rails 的 ActiveSupport。  获取时间间隔 10.minutes 2.5.seconds 5.days 10.minutes 30....

    koa-logs-full:仿照rails风格的轻量log库,可以按rails的log风格记录请求日志。可以很好的解决nodejs由于单进程导致的日志串起来的问题

    nodejs是单进程单线程模型,跟php,ruby这些不同,nodejs所有的请求都会是同一个线程处理。于是会发生这种情况,第一个请求执行了一半的时候,下一个请求已经过来了。如果我们使用传统的打日志的方法。可能a请求打了...

    Ajax基础教程(扫描版)

    原书名:Foundations of Ajax 原出版社: Apress 作者: (美)Ryan Asleson,Nathaniel T.Schutta 译者: 金灵 等 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ...b.2.9 ruby on rails ... 253

    java开源包1

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包11

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包2

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包3

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包6

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包5

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包10

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包4

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包8

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包7

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

    java开源包9

    业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH...

Global site tag (gtag.js) - Google Analytics