以Ruby格式YYYYMM格式获取当前年份和月份(以及下个月)

Hom*_*ith 18 ruby time date

如何以特定格式获取Ruby中的当前日期和月份?

如果今天是2012年6月8日,我想得到201206.

此外,考虑到2012年12月的下个月将是201301年,我希望能够从下一个月开始.

Mic*_*ohl 33

我这样做:

require 'date'
Date.today.strftime("%Y%m")
#=> "201206"
(Date.today>>1).strftime("%Y%m")
#=> "201207"
Run Code Online (Sandbox Code Playgroud)

Date#>>的优点是它会自动为您处理某些事情:

Date.new(2012,12,12)>>1
#=> #<Date: 2013-01-12 ((2456305j,0s,0n),+0s,2299161j)>
Run Code Online (Sandbox Code Playgroud)


Jos*_*osh 15

这个月:

date = Time.now.strftime("%Y%m")
Run Code Online (Sandbox Code Playgroud)

下个月:

if Time.now.month == 12
  date = Time.now.year.next.to_s + "01"
else
  date = Time.now.strftime("%Y%m").to_i + 1
end
Run Code Online (Sandbox Code Playgroud)


Ami*_*ana 7

从Ruby 2开始,"next_month"是Date上的一个方法:

require "Date"

Date.today.strftime("%Y%m")
# => "201407"

Date.today.next_month.strftime("%Y%m")
# => "201408"
Run Code Online (Sandbox Code Playgroud)


Mah*_*tam 5

require 'date'
d=Date.today                    #current date
d.strftime("%Y%m")              #current date in format
d.next_month.strftime("%Y%m")   #next month in format
Run Code Online (Sandbox Code Playgroud)