2011-05-20 155 views

回答

106
require 'date' 

date = DateTime.parse("2011-05-19 10:30:14") 
formatted_date = date.strftime('%a %b %d %H:%M:%S %Z %Y') 

有關格式化日期的更多信息,請參見strftime()

32

"2011-05-19 10:30:14".to_time

+0

我越來越NoMethodError ...哪些模塊被加載你? – mrek 2015-10-05 13:59:48

+3

@mrek此方法在rails中定義,或者更具體地說是activesupport的String擴展。你可以'''要求'active_support/core_ext/string''''來獲取它。請參閱http://apidock.com/rails/String/to_time – Dipil 2015-10-06 05:06:10

13

不需要應用任何東西。只需將此代碼添加到指定日期的變量末尾即可。例如,

@todaydate = "2011-05-19 10:30:14" 
    @todaytime.to_time.strftime('%a %b %d %H:%M:%S %Z %Y') 

你會得到正確的格式,只要你喜歡。您可以在Rails的控制檯

Loading development environment (Rails 3.0.4) 
ruby-1.9.2-p136 :001 > todaytime = "2011-05-19 10:30:14" 
=> "2011-05-19 10:30:14" 
ruby-1.9.2-p136 :002 > todaytime 
=> "2011-05-19 10:30:14" 
ruby-1.9.2-p136 :003 > todaytime.to_time 
=> 2011-05-19 10:30:14 UTC 
ruby-1.9.2-p136 :008 > todaytime.to_time.strftime('%a %b %d %H:%M:%S %Z %Y') 
=> "Thu May 19 10:30:14 UTC 2011" 

嘗試「DATE_FORMAT」寶石,以顯示不同格式的日期進行檢查。

全部最好!!!

3

使用DATE_FORMATDate Conversions

在你的初始化:

DateTime::DATE_FORMATS[:my_date_format] = "%a %b %d %H:%M:%S %Z %Y" 

在你看來:

date = DateTime.parse("2011-05-19 10:30:14") 
date.to_formatted_s(:my_date_format) 
date.to_s(:my_date_format) 
1
<%= string_to_datetime("2011-05-19 10:30:14") %> 

    def string_to_datetime(string,format="%Y-%m-%d %H:%M:%S") 
    DateTime.strptime(string, format).to_time unless string.blank? 
    end 
3

這另一個有用的代碼:

"2011-05-19 10:30:14".to_datetime.strftime('%a %b %d %H:%M:%S %Z %Y') 
8

更多格式:

require 'date' 

date = "01/07/2016 09:17AM" 
DateTime.parse(date).strftime("%A, %b %d") 
#=> Friday, Jul 01 

DateTime.parse(date).strftime("%m/%d/%Y") 
#=> 07/01/2016 

DateTime.parse(date).strftime("%m-%e-%y %H:%M") 
#=> 07- 1-16 09:17 

DateTime.parse(date).strftime("%b %e") 
#=> Jul 1 

DateTime.parse(date).strftime("%l:%M %p") 
#=> 9:17 AM 

DateTime.parse(date).strftime("%B %Y") 
#=> July 2016 
DateTime.parse(date).strftime("%b %d, %Y") 
#=> Jul 01, 2016 
DateTime.parse(date).strftime("%a, %e %b %Y %H:%M:%S %z") 
#=> Fri, 1 Jul 2016 09:17:00 +0200 
DateTime.parse(date).strftime("%Y-%m-%dT%l:%M:%S%z") 
#=> 2016-07-01T 9:17:00+0200 
DateTime.parse(date).strftime("%I:%M:%S %p") 
#=> 09:17:00 AM 
DateTime.parse(date).strftime("%H:%M:%S") 
#=> 09:17:00 
DateTime.parse(date).strftime("%e %b %Y %H:%M:%S%p") 
#=> 1 Jul 2016 09:17:00AM 
DateTime.parse(date).strftime("%d.%m.%y") 
#=> 01.07.16 
DateTime.parse(date).strftime("%A, %d %b %Y %l:%M %p") 
#=> Friday, 01 Jul 2016 9:17 AM 
相關問題