21

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

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

而且,考虑到在201212中,下个月将是201301,我希望能够从我们所在的那个得到下个月。

4

6 回答 6

37

我会这样做:

require 'date'
Date.today.strftime("%Y%m")
#=> "201206"
(Date.today>>1).strftime("%Y%m")
#=> "201207"

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

Date.new(2012,12,12)>>1
#=> #<Date: 2013-01-12 ((2456305j,0s,0n),+0s,2299161j)>
于 2012-06-08T22:31:30.827 回答
16

这个月:

date = Time.now.strftime("%Y%m")

下个月:

if Time.now.month == 12
  date = Time.now.year.next.to_s + "01"
else
  date = Time.now.strftime("%Y%m").to_i + 1
end
于 2012-06-08T21:35:48.197 回答
7

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

require "Date"

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

Date.today.next_month.strftime("%Y%m")
# => "201408"
于 2014-07-11T22:16:49.287 回答
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
于 2014-09-04T10:52:35.433 回答
1

使用http://strfti.me/那种东西

strftime "%Y%m"
于 2012-06-08T21:36:53.253 回答
0

Ruby 2 Plus 和 rails 4 plus。

通过使用以下功能,您可以找到所需的结果。

Time.now #current time according to server timezone
Date.today.strftime("%Y%m") # => "201803"

Date.today.next_month.strftime("%Y%m") # => "201804"
于 2018-03-15T11:43:20.833 回答