Changing the default date and time format in Rails

2019-01-11 03:14发布

问题:

I was looking for a way to change the default date format in Rails 4.

回答1:

Found a nice approach through the Rails Internationalization (I18n) API

Data and time formats can be 'translated' by adding the format to the i18n configuration.

config/locales/en.yml

en:
  date:
    formats:
      default: "%d/%m/%Y"
  time:
    formats:
      default: "%d/%m/%Y %H:%M"

Note: remember to not have tabs for the indent, like I did first time :)


As mentioned by NoelProf in the comments

To use i18n conversion don't forget the l (lower case L) before your date in views! For example: <%= l your_date %>

You are invited to comment if you found other ways working well.



回答2:

Add this

# Date
Date::DATE_FORMATS[:default] = "%d/%m/%Y" 

# Time
Time::DATE_FORMATS[:default] = "%d/%m/%Y %H:%M" 

to config/initializers/date_time.rb

Then restart the server.



回答3:

If you use i18n conversion don't forget the l method before your dates in views!

<%= l your_date %>