2015-11-09 99 views
0

我需要來自數據庫日期,如"2015-08-27T12:09:36Z"。我試過,但沒有得到任何解決方案,我得到date and time in different variable.如何從DB日期獲取Ruby日期時間

我需要得到它在RubyNo rails在我的應用程序中。

我用下面的代碼,但沒有得到。

Time.strptime("2015-08-27T12:09:36Z", "%Y-%m-%dT%H:%M:%S%z").in_time_zone 

任何人都有經驗嗎?

感謝

+1

看一看['Date.parse()'](http://ruby-doc.org/stdlib-2.2.2/libdoc/date/rdoc/Date.html#method-c-解析)及其朋友'Time.parse()'。 – sschmeck

回答

0

我沒有足夠的信譽評論使我張貼作爲答案評論,你找這個

Time.now.strftime('%Y-%m-%dT%H:%M:%SZ') 

,這將給你要求的模式。 Z表示如果使用

%z - Time zone as hour and minute offset from UTC (e.g. +0900) 
      %:z - hour and minute offset from UTC with a colon (e.g. +09:00) 
      %::z - hour, minute and second offset from UTC (e.g. +09:00:00) 
    %Z - Time zone abbreviation name 

檢查更

http://apidock.com/ruby/Time/strftime

我更新的答案時區您的評論

require 'date' 

DateTime.parse("2015-08-27T12:09:36Z").strftime('%Y-%m-%dT%H:%M:%SZ') 

在您的代碼更改後Time.strptime('')DateTime.strptime('')

+0

不符合Time.now ..我需要做...數據庫日期.. – user1780370

0

首先,您需要require 'date'。 Ruby內置了DateTime類,沒有require,但該庫提供了更多功能。

如果您有從ISO-8601格式的數據庫中檢索到的字符串,並且想將其轉換爲日期和時間,只需使用DateTime.iso8601(string)即可獲取DateTime對象。您可以隨後提取日期和時間組件,不過您可以隨時取而代之。

irb(main):001:0> require 'date' #=> true 
irb(main):002:0> dt = DateTime.iso8601("2015-08-27T12:09:36Z") # DateTime object 
irb(main):003:0> d = dt.to_date # Date object 
irb(main):004:0> t = dt.to_time # Time object