'Gets a DateTime object for the current month.
:param before_now: include days in current month before today
:param after_now: include days in current month after today
:param tzinfo: timezone, instance of datetime.tzinfo subclass
:example DateTime(\'2012-04-04 11:02:02\')
:return DateTime'

@classmethod
def date_time_this_month(cls, before_now=True, after_now=False, tzinfo=None):

    now = datetime.now(tzinfo)
    this_month_start = now.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
    next_month_start = (this_month_start + relativedelta.relativedelta(months=1))
    if (before_now and after_now):
        return cls.date_time_between_dates(this_month_start, next_month_start, tzinfo)
    elif ((not before_now) and after_now):
        return cls.date_time_between_dates(now, next_month_start, tzinfo)
    elif ((not after_now) and before_now):
        return cls.date_time_between_dates(this_month_start, now, tzinfo)
    else:
        return now
