'Get a DateTime object based on a random date between two given dates.
Accepts date strings that can be recognized by strtotime().
:param start_date Defaults to 30 years ago
:param end_date Defaults to "now"
:param tzinfo: timezone, instance of datetime.tzinfo subclass
:example DateTime(\'1999-02-02 11:42:52\')
:return DateTime'

@classmethod
def date_time_between(cls, start_date=u'-30y', end_date=u'now', tzinfo=None):

    start_date = cls._parse_date_time(start_date, tzinfo=tzinfo)
    end_date = cls._parse_date_time(end_date, tzinfo=tzinfo)
    timestamp = random.randint(start_date, end_date)
    return (datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=timestamp))
