ruby-on-rails - 如何在 Rails 中不使用自定义格式的情况下显示带有 am/pm 的日期时间

标签 ruby-on-rails ruby datetime ruby-on-rails-4 ruby-on-rails-3.2

目前,我在 Rails 中显示我的 DateTime:

my_time.to_formatted_s(:long_ordinal)

这会产生如下日期:

March 17th, 2014 14:44

完美,除了14:44时间。我希望它显示 2:44pm(“pm”的格式对我来说并不重要)。这需要让普通人更容易阅读。我知道我可以使用:

my_time.strftime('%l:%M %p')

但是,我真的很想使用预定义的符号来实现更易于人类阅读的格式,因为我希望这种格式在任何语言中都更易于人类阅读。如果有人使用不同的语言进行浏览,而 DateTime 自然看起来有点不同,我希望 Rails 可以,或者至少设置为,自动很好地显示 DateTime 。也许我对 Rails 的期望太高了?尽管没有一个简单的标志或设置来实现更人类可读的 DateTime 格式,但对我来说似乎很奇怪。

最佳答案

在这种情况下,您可以添加自己的人性化格式

# config/initializers/time_formats.rb
Time::DATE_FORMATS[:custom_long_ordinal] = "%B %e, %Y %l:%M %p"

并使用它

my_time.to_formatted_s(:custom_long_ordinal)

关于ruby-on-rails - 如何在 Rails 中不使用自定义格式的情况下显示带有 am/pm 的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907268/

相关文章:

ruby-on-rails - 无法安装 gem capybara-webkit

ruby-on-rails - bundle 更新失败: marshal data too short

ruby-on-rails - Ruby on Rails,将项目范围内的单引号转换为双引号

ruby - 如何在偶数位置提取文本?

mysql - 选择每个项目的最大日期的所有列

ruby-on-rails - Rvm 和 gems,bundle show 和 gem 列表

ruby-on-rails - 将暂存环境添加到工作流程

ruby - 从字符串中删除数组中的短语

java - Joda : org. joda.time.IllegalInstantException:由于时区偏移转换而导致非法即时(夏令时 'gap' )

javascript - HTML 日期 : Get Correct date in yyyy - mm - dd