2015-08-20 71 views
1

我有一個格式爲2015-03-09T11:09:00.000Z的日期字符串。如何將其轉換爲yyyy-mm-dd格式?格式日期ruby

我試過,

require 'date' 
string = "2015-03-09T11:09:00.000Z" 
date = Date.strptime(string,"%Y%m%d") 

它給, ArgumentError: invalid date

我想下面的輸出"2015-03-09"

誰能告訴我這個有些方向?我究竟做錯了什麼?謝謝。

+0

我認爲,在未來,你感謝大家的回答不要。這只是混亂。而且,你不應該表達你對差或者不正確答案的理解,但是如果你不感謝五分之一的答案,失去的答謝就會像拇指一樣伸出手。你會看到,SO成員傾向於將他們的感謝限制在真正的特殊答案上。最後,成員們並不期待被感謝。 –

回答

0

試試這個

require 'date' 
string = "2015-03-09T11:09:00.000Z" 
date = Date.strptime(string,"%Y-%m-%d").to_s 
+0

謝謝!它的工作原理 – doesey

2

你做的差不多吧。只是在指定日期格式時犯了一個小錯誤。您只需要將:"%Y%m%d"更改爲:"%Y-%m-%d"。然後,它會工作!

require 'date' 
string = "2015-03-09T11:09:00.000Z" 
Date.strptime(string,"%Y-%m-%d").to_s 
# > "2015-03-09" 

要查看所有可用的日期格式,看documentation

如何將其轉換爲yyyy-mm-dd格式?

由於上述文件顯示,您可以使用'%Y-%m-%d'格式會像你期望的yyyy-mm-dd格式。

+0

非常感謝。這工作 – doesey

0

該字符串在時間,所以我會用時間來解析字符串並將其格式化爲日期。

string = "2015-03-09T11:09:00.000Z" 
date = Time.parse(string).strftime("%Y-%m-%d") 

輸出是"2015-03-09"。希望有所幫助。

+0

這很有趣,考慮到'Time.methods.include?(:parse)#=> false'。 –

+0

謝謝!所有這些答案都有效:) – doesey

1

假設你想要一個字符串,而不是一個約會對象,所有你需要的是:

string[0,10] #=> "2015-03-09" 
+0

非常感謝。這有幫助! – doesey