Какой самый эффективный способ получить первый день текущего месяца?

С ruby ​​я пытаюсь получить формат даты как таковой: 2009-10-01

Где я беру текущую дату (2009-10-26), а затем меняю день на "01".

Я знаю, как это сделать, но было любопытно, что самый короткий путь, код мудрый, чтобы снять это.

Ответы

Ответ 1

Time.parse("2009-10-26").strftime("%Y-%m-01")

Ответ 2

Если вы не возражаете, включая ActiveSupport в своем приложении, вы можете просто сделать это:

require 'active_support'
date = Date.today.beginning_of_month

Ответ 3

require 'date'    
now = Date.today
Date.new(now.year, now.month, 1)

Ответ 4

Если вам нужен объект даты без ActiveSupport, вы можете вернуться к последнему дню последнего месяца и сумме 1.

Date.today - Date.today.mday + 1

Ответ 5

Наиболее эффективная для начала и окончания текущего месяца

@date = DateTime.now   
@date.beginning_of_month
@date.end_of_month

Ответ 6

Это работает...

Не ужасно умный:/

require 'date'
Date.parse(Date.parse("2009-10-26").to_s[0,8] << "01")

Ответ 7

require 'active_support/core_ext'
Date.today.beginning_of_month

Ответ 8

Как

Date.today.beginning_of_day
Date.today.end_of_day

и

Date.today.beginning_of_week
Date.today.end_of_week

Там также есть

Date.today.beginning_of_year
Date.today.end_of_year