Returns a timezone-aware datetime...
        Defaulting to UTC (as it should).

        Keyword Arguments:
            to_timezone {str} -- timezone to convert to (default: None/UTC)
            naive {bool} -- if True,
                            the tzinfo is simply dropped (default: False)

def datetime(self, to_timezone=None, naive=False):
        """Returns a timezone-aware datetime...
        Defaulting to UTC (as it should).

        Keyword Arguments:
            to_timezone {str} -- timezone to convert to (default: None/UTC)
            naive {bool} -- if True,
                            the tzinfo is simply dropped (default: False)
        """
        if to_timezone:
            dt = self.datetime().astimezone(pytz.timezone(to_timezone))
        else:
            dt = Datetime.utcfromtimestamp(self._epoch)
            dt.replace(tzinfo=self._tz)
        # Strip the timezone info if requested to do so.
        if naive:
            return dt.replace(tzinfo=None)

        else:
            if dt.tzinfo is None:
                dt = dt.replace(tzinfo=self._tz)
        return dt