我張貼的日期的API和所需的格式如下:Rails的格式化日期
2014-12-01T01:29:18
我可以從模型得到的日期,像這樣:
Model.created_at.to_s
返回:
2014-12-01 01:29:18 -0500
如何使用Rails或Ruby來格式化它,如使用T所需的格式並刪除-0500?
感謝
我張貼的日期的API和所需的格式如下:Rails的格式化日期
2014-12-01T01:29:18
我可以從模型得到的日期,像這樣:
Model.created_at.to_s
返回:
2014-12-01 01:29:18 -0500
如何使用Rails或Ruby來格式化它,如使用T所需的格式並刪除-0500?
感謝
使用
Model.created_at.strftime("%FT%T")
其中,
%F - The ISO 8601 date format (%Y-%m-%d)
%T - 24-hour time (%H:%M:%S)
以下是一些Date
和Time
格式,常用的有用的列表,你可以在指定的strftime
方法:
Date (Year, Month, Day):
%Y - Year with century (can be negative, 4 digits at least)
-0001, 0000, 1995, 2009, 14292, etc.
%C - year/100 (round down. 20 in 2009)
%y - year % 100 (00..99)
%m - Month of the year, zero-padded (01..12)
%_m blank-padded (1..12)
%-m no-padded (1..12)
%B - The full month name (``January'')
%^B uppercased (``JANUARY'')
%b - The abbreviated month name (``Jan'')
%^b uppercased (``JAN'')
%h - Equivalent to %b
%d - Day of the month, zero-padded (01..31)
%-d no-padded (1..31)
%e - Day of the month, blank-padded (1..31)
%j - Day of the year (001..366)
Time (Hour, Minute, Second, Subsecond):
%H - Hour of the day, 24-hour clock, zero-padded (00..23)
%k - Hour of the day, 24-hour clock, blank-padded (0..23)
%I - Hour of the day, 12-hour clock, zero-padded (01..12)
%l - Hour of the day, 12-hour clock, blank-padded (1..12)
%P - Meridian indicator, lowercase (``am'' or ``pm'')
%p - Meridian indicator, uppercase (``AM'' or ``PM'')
%M - Minute of the hour (00..59)
%S - Second of the minute (00..59)
%L - Millisecond of the second (000..999)
%N - Fractional seconds digits, default is 9 digits (nanosecond)
%3N millisecond (3 digits)
%6N microsecond (6 digits)
%9N nanosecond (9 digits)
%12N picosecond (12 digits)
對於格式strftime
方法完整列表請訪問APIDock
試試這個:
created_at.strftime('%FT%T')
這是一個時間的格式化功能,爲您提供一種方式來呈現日期的字符串表示。 (http://ruby-doc.org/core-2.2.1/Time.html#method-i-strftime)。
從APIdock:
%Y%m%d => 20071119 Calendar date (basic)
%F => 2007-11-19 Calendar date (extended)
%Y-%m => 2007-11 Calendar date, reduced accuracy, specific month
%Y => 2007 Calendar date, reduced accuracy, specific year
%C => 20 Calendar date, reduced accuracy, specific century
%Y%j => 2007323 Ordinal date (basic)
%Y-%j => 2007-323 Ordinal date (extended)
%GW%V%u => 2007W471 Week date (basic)
%G-W%V-%u => 2007-W47-1 Week date (extended)
%GW%V => 2007W47 Week date, reduced accuracy, specific week (basic)
%G-W%V => 2007-W47 Week date, reduced accuracy, specific week (extended)
%H%M%S => 083748 Local time (basic)
%T => 08:37:48 Local time (extended)
%H%M => 0837 Local time, reduced accuracy, specific minute (basic)
%H:%M => 08:37 Local time, reduced accuracy, specific minute (extended)
%H => 08 Local time, reduced accuracy, specific hour
%H%M%S,%L => 083748,000 Local time with decimal fraction, comma as decimal sign (basic)
%T,%L => 08:37:48,000 Local time with decimal fraction, comma as decimal sign (extended)
%H%M%S.%L => 083748.000 Local time with decimal fraction, full stop as decimal sign (basic)
%T.%L => 08:37:48.000 Local time with decimal fraction, full stop as decimal sign (extended)
%H%M%S%z => 083748-0600 Local time and the difference from UTC (basic)
%T%:z => 08:37:48-06:00 Local time and the difference from UTC (extended)
%Y%m%dT%H%M%S%z => 20071119T083748-0600 Date and time of day for calendar date (basic)
%FT%T%:z => 2007-11-19T08:37:48-06:00 Date and time of day for calendar date (extended)
%Y%jT%H%M%S%z => 2007323T083748-0600 Date and time of day for ordinal date (basic)
%Y-%jT%T%:z => 2007-323T08:37:48-06:00 Date and time of day for ordinal date (extended)
%GW%V%uT%H%M%S%z => 2007W471T083748-0600 Date and time of day for week date (basic)
%G-W%V-%uT%T%:z => 2007-W47-1T08:37:48-06:00 Date and time of day for week date (extended)
%Y%m%dT%H%M => 20071119T0837 Calendar date and local time (basic)
%FT%R => 2007-11-19T08:37 Calendar date and local time (extended)
%Y%jT%H%MZ => 2007323T0837Z Ordinal date and UTC of day (basic)
%Y-%jT%RZ => 2007-323T08:37Z Ordinal date and UTC of day (extended)
%GW%V%uT%H%M%z => 2007W471T0837-0600 Week date and local time and difference from UTC (basic)
%G-W%V-%uT%R%:z => 2007-W47-1T08:37-06:00 Week date and local time and difference from UTC (extended)
解釋爲什麼這個工程由[編輯]荷蘭國際集團的答案。 –
在
environment.rb
您可以添加這樣的事情:
Time::DATE_FORMATS[:custom_datetime] = "%d.%m.%Y"
,然後用它以下窪Y:
post.updated_at.to_s(:custom_datetime)
`
我必須重新啓動開發服務器來實現這個工作。 –
補充:「將自己的日期時間格式添加到#to_formatted_s」(http://api.rubyonrails.org/classes/DateTime.html#method-i-to_formatted_s) –
由於I18n是Rails核心功能從version 2.2開始,你可以使用它的localize - 方法。通過應用forementioned strftime %-variables可以指定config/locales/en.yml
下所需的格式(或其他語言),你的情況是這樣的:
time:
formats:
default: '%FT%T'
或者,如果你想使用這種格式在幾個特定的地方,你可以參考它是這樣
time:
formats:
specific_format: '%FT%T'
變量之後,你可以在你的意見這樣使用它:
l(Mode.last.created_at, format: :specific_format)
偉大的工作!我想不出如何靜態T插入將工作,但這個技巧的工作.... – HackerKarma
通用格式的快捷方式: %D - 相同(%m /%d /%y) – RajeshM