目前,我在Rails中显示我的DateTime
:
my_time.to_formatted_s(:long_ordinal)
产生如下日期:
March 17th, 2014 14:44
完美除了14:44
时间。我希望它说下午2:44('pm'格式化对我来说无关紧要)。这对于普通人来说需要更容易阅读。我知道我可以使用:
my_time.strftime('%l:%M %p')
但是,我真的很想使用预定义的符号来表示更易读的格式,因为我希望这种格式在任何语言中都更具人性化。如果有人正在使用DateTime
自然看起来有点不同的另一种语言进行浏览,我希望Rails可以,或者至少可以设置为自动显示DateTime
。也许我在那里期待太多的Rails?虽然没有一个简单的标志或设置用于更人性化的DateTime
格式,但对我来说似乎很奇怪。
答案 0 :(得分:4)
在这种情况下,您可以添加自己的人性化格式
# 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)
答案 1 :(得分:0)
请参阅ActiveSupport日期时间格式的api doc参考:http://apidock.com/rails/ActiveSupport/CoreExtensions/DateTime/Conversions/to_formatted_s
答案 2 :(得分:0)
如果你只想要晚上10点15分
您可以使用:
t=Time.now
am=true
if t.hour >= 12
t=t-12*60*60
am=false
end
s=t.to_s[13..17]
if am==true
return s+ "am"
else
return s+ "pm"
end
或者使用SOMETHING LIKE编辑/扩展时间类(我不建议您使用此代码,它只是一个草稿)
class Time
def self.humanize
t=self
am=true
if t.hour >= 12
t=t-12*60*60
am=false
end
s=t.to_s[13..17]
if am==true
return s+ "am"
else
return s+ "pm"
end
end
end
答案 3 :(得分:0)