2010-09-09 36 views

回答

107
<%= Time.now.strftime("%m/%d/%Y") %> 
+1

https://hackhands.com/format-datetime-ruby/ – Jason 2016-01-16 01:47:29

19

你可以簡單地做(在​​Time替代DateTime如果採用直板紅寶石 - 即沒有Rails的):

DateTime.now.strftime('%m/%d/%Y') 

如果您正在使用的格式很多,你可能想創建一個date_time_formats初始化在RAILS_ROOT/config/initializers文件夾中(假設梁2),這樣的事情:

# File: date_time_formats.rb 
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
    :human => "%m/%d/%Y" 
) 

那麼這將讓你在代碼中使用的DateTime.now.to_s(:human)更友好的版本。

+1

這是最優雅的方式來做到這一點。在各地使用strftime是凌亂的。 其實雖然你可以做這樣的事情(更簡潔) '''紅寶石 日期:: DATE_FORMATS [:MDY] = 「%B%d,%Y」 時間:: DATE_FORMATS [:MDY] = 「%B%d%Y」 Time :: DATE_FORMATS [:month_and_year] =「%B%Y」 Time :: DATE_FORMATS [:pretty] = lambda {| time | } ''' – Subimage 2013-09-09 22:53:42

+2

需要注意的是,僅在配置文件中的更改(僅適用於配置文件)服務器重新啓動後生效,與模型,視圖和控制器的更改不同。 – CurlyCorvus 2014-08-04 00:31:54

6

我認爲你可以使用.strftime

t = Time.now() 
t.strftime("The date is %m/%d/%y") 

這應該給"The date is 09/09/10"。請參閱here以獲取.strftime格式代碼的詳細列表。

0

如果您不需要一整年,你可以嘗試 Time.now.strftime('%D')