def METHOD_NAME(format, time, zone_id):
    """
    Convert Unix timestamp to a formatted datetime string.
    Examples
    --------
    >>> hl.eval(hl.experimental.strftime("%Y.%m.%d %H:%M:%S %z", 1562569201, "America/New_York"))
    '2019.07.08 03:00:01 -04:00'
    >>> hl.eval(hl.experimental.strftime("%A, %B %e, %Y. %r", 876541523, "GMT+2"))
    'Saturday, October 11, 1997. 05:45:23 AM'
    >>> hl.eval(hl.experimental.strftime("%A, %B %e, %Y. %r", 876541523, "+08:00"))
    'Saturday, October 11, 1997. 11:45:23 AM'
    Notes
    -----
    The following formatting characters are supported in format strings: A a B b D d e F H I j k l M m n p R r S s T t U u V v W Y y z
    See documentation here: https://linux.die.net/man/3/strftime
    A zone id can take one of three forms. It can be an explicit offset, like "+01:00", a relative offset, like "GMT+2",
    or a IANA timezone database (TZDB) identifier, like "America/New_York". Wikipedia maintains a list of TZDB identifiers here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    Currently, the formatter implicitly uses the "en_US" locale.
    Parameters
    ----------
    format : str or :class:`.Expression` of type :py:data:`.tstr`
        The format string describing how to render the time.
    time : int of :class:`.Expression` of type :py:data:`.tint64`
        A long representing the time as a Unix timestamp.
    zone_id: str or :class:`.Expression` of type :py:data:`.tstr`
        An id representing the timezone. See notes above.
    Returns
    -------
    :class:`~.StringExpression`
        A string of the specified format based on the requested time.
    """
    return _func("strftime", hl.tstr, format, time, zone_id)