To get the user-formatted datetime in Odoo, you can use the following method:

def _get_user_formatted_datetime(self, date):
    tz = pytz.timezone(self.env.user.tz or 'UTC')
    lang = get_lang(self.env)
    date = date.replace(tzinfo=timezone.utc).astimezone(tz)
    return date.strftime(("%s %s" % (lang.date_format, lang.time_format)))