
    
FZj                         d Z ddlmZ ddlZddlZej                  j                   eddd            Zej                  j                   eddddd	d	d
            Zd Zej                  fdZ	y)zt
mygeotab.dates
~~~~~~~~~~~~~~

Date helper objects for timezone shifting and date formatting for the MyGeotab API.
    )datetimeN   i'           ;   i?B c                    t        | t              s| j                         S t        | t        j
                        } | t        k  rt        } n| t        kD  rt        } t        j                  |       j                  d      dz   S )zFormats the given datetime as a UTC-zoned ISO 8601 date string.

    :param datetime_obj: The datetime or date object.
    :type datetime_obj: datetime
    :return: The datetime object in 8601 string form.
    :rtype: datetime
    zYYYY-MM-DDTHH:mm:ss.SSSZ)
isinstancer   	isoformatlocalize_datetimepytzutcMIN_DATEMAX_DATEarrowgetformat)datetime_objs    PC:\Users\Rodrigo\frota-trucks-cliente\python\Lib\site-packages\mygeotab/dates.pyformat_iso_datetimer      sg     lH-%%''$\488<Lh		 99\"))*CDsJJ    c                 N   | j                   s|j                  |       S 	 | j                  |      S # t        $ rk | t	        dddt
        j                        k  r%t        j                  t
        j                        cY S t        j                  t
        j                        cY S w xY w)a2  Converts a naive or UTC-localized date into the provided timezone.

    :param datetime_obj: The datetime object.
    :type datetime_obj: datetime
    :param tz: The timezone. If blank or None, UTC is used.
    :type tz: datetime.tzinfo
    :return: The localized datetime object.
    :rtype: datetime
       r   )tzinfo)	r   localize
astimezoneOverflowErrorr   r   r   r   r   )r   tzs     r   r   r   %   s     {{<((	1**2.. 	1hq!Qtxx@@**48844&&txx00	1s   0 AB$>#B$#B$)
__doc__r   r   r   r   r   r   r   r   r    r   r   <module>r"      sk      88XaA./88XdBBBGHK$ (,xx 1r   