2011-06-01 58 views
1

通過使用XML API,我得到的日期和時間爲"2008-02-05T12:50:00Z"。現在我想將這種文本格式轉換成不同的格式,如"2008-02-05 12:50:00"。但我正在得到正確的方式。來自XML API的ROR + Ruby日期

我已經試過這一個:: @a = "2008-02-05T12:50:00Z"

步驟

1. @a.to_date 

=> Tue, 05 Feb 2008 
2. @a.to_date.strftime('%Y') 

=> "2008" 
3. @a.to_date.strftime('%Y-%m-%d %H:%M:%S') 

=> "2008-02-05 00:00:00 

推薦一些東西嗎?

回答

3

to_date方法將字符串轉換爲日期,但日期不包含小時,分鐘或秒。你想使用DateTime

require 'date' 
d = DateTime.parse('2008-02-05T12:50:00Z') 
d.strftime('%Y-%m-%d %H:%M:%S') 
# 2008-02-05 12:50:00 
+0

Thanx,真的有用 – Rubyist 2011-06-01 06:19:39

2

使用Ruby的日期時間:

DateTime.parse("2008-02-05T12:50:00Z") #=> #<DateTime: 2008-02-05T12:50:00+00:00 (353448293/144,0/1,2299161)> 

從那裏可以輸出任何格式的價值你想使用strftime。有關更多信息,請參閱Time#strftime

+0

@ tinman ..我們可以使用'Time.parse()'這裏..你更喜歡哪一個? – rubyprince 2011-06-01 09:28:15

+0

這取決於您的需求。時間與系統硬件相關,並且範圍更加有限。 – 2011-06-01 09:50:13