用Ruby/Rails进行strftime格式化--小写am/pm

12

我有以下代码:

@comment.created_at.strftime("%I:%M %p %b %d")

输出结果为:10:32 AM Dec 19

我想要输出小写的am,例如:10:32am Dec 19

有没有关于如何在ruby/rails中实现这个功能的想法?

谢谢

5个回答

10

尝试使用%P而不是使用%p


2

使用%P代替%p。这将适用于Ruby 1.9,但对于1.8,您需要使用.sub(' AM ', ' am ').sub(' PM ', ' pm ')或类似方法。


有趣。我在Heroku上,不确定使用的是哪个版本或Ruby。 - AnApprentice
<%= RUBY_VERSION %> 应该能给你一个提示 ;-) - noodl
Heroku上的Ruby 1.9版本都是beta版,所以我现在想避免使用它。 - AnApprentice

2
你可以将它们保存到不同的变量中并执行以下操作:

a = @comment.created_at.strftime("%I:%M")
b = @comment.created_at.strftime("%P").downcase
c = @comment.created_at.strftime("%b %d")
e = a+b+" "+c #=> 10:32am Dec 19


1

在Ruby 1.9中,似乎可以使用%P代替%p,不要忘记去掉空格。

@comment.created_at.strftime("%I:%M%P %b %d") =>上午10:32 12月19日


1

这篇文章这个应该能给你所需的。基本上,你需要在初始化器中定义一个自定义时间格式。

如果你想从API获取它,他们会展示Time类中的默认值。


为什么这个答案会被点赞?它完全没有回答问题的重点。;-) - noodl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接