如何从月份编号获取月份名称

How can I get month name from month number

我可以通过以下方式获取下个月的月数和年份:

(Time.now + 1.month).month
# => 10
(Time.now + 1.month).year
# => 2015

如何从 10 得到 "October"

使用格式字符串。

(Time.now + 1.month).strftime("%B")
# => "October"

您可以使用 Date 的月份名称常量

Date::MONTHNAMES[10] => "October"

我认为应该在 I18n 模块的帮助下完成,因为 strftime 忽略语言环境:

(Time.now + 1.month).strftime("%B") # => 'October'

I18n.l(Time.now + 1.month, format: "%B") # => 'Oktober'

Ruby 日期 class 提供月份名称的常量数组。您可以将月份编号作为索引传递,并将获得月份名称

Date::MONTHNAMES[10]
# November

获取缩写月份名称

Date::ABBR_MONTHNAMES[10]
# Nov

或者您也可以使用 strftime %B 格式化程序从日期中获取月份名称,例如

Date.today.strftime(%B)
# September

类似

(Time.now + 1.month).strftime('%B')
# November

如果您的应用程序是多语言的或使用英语以外的语言,您可以使用 I18n

获取本地化的月份名称
I18n.l(Time.now, format: "%B")