[pyar] Consulta dateutil

Roberto Alsina ralsina en netmanagers.com.ar
Mar Mar 25 19:17:28 ART 2014


On 25/03/14 18:58, Ramiro Morales wrote:
> 2014-03-25 18:32 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>> 2014-03-25 18:23 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>>> On 25/03/14 18:18, Matías Bellone wrote:
>>>
>>> 2014-03-25 17:57 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
>>>> Ayer estaba tratando de hacer unas cosas con timezones y dateutil y me
>>>> metí en algo que o no entiendo, o está re roto...
>>>>
>>>>
>>>>>>> dateutil.parser.parse('03/25/2014 05:35:00 PM UTC-03:00')
>>>> me da
>>>>
>>>> datetime.datetime(2014, 3, 25, 17, 35, tzinfo=tzoffset(None, 10800))
>>>>
>>>> Y ese offset... está exactamente al revés, no?
>>>>
>>>> Por ejemplo:
>>>>
>>>>>>> dateutil.tz.gettz('ART').utcoffset(datetime.datetime.now())
>>>> me da datetime.timedelta(-1, 75600) que es -10800 !
>>>>
>>>> Por las dudas para ver si no se me cruza algo...
>>>>
>>>>>>> dateutil.parser.parse('03/25/2014 05:35:00 PM
>>>>>>> UTC-03:00').astimezone(dateutil.tz.tzutc())
>>>> datetime.datetime(2014, 3, 25, 14, 35, tzinfo=tzutc())
>>>>
>>>> que es exactamente lo contrario de lo que debería hacer, no?
>>>>
>>>>
>>>> Alguien tiene alguna pista, o es que dateutil está en pedo?
>>>>
>>> Aparentemente, el parser de dateutil hace lo contrario a lo que uno
>>> esperaría con ese tipo de timezones:
>>>
>>>
>>> https://bazaar.launchpad.net/~dateutil/dateutil/trunk/view/head:/dateutil/parser.py#L606
>>>
>>>
>>> WTF???? Quien usa UTC+3 para decir "mi timezone +3 es UTC?????"
>>>
>> [...]
>>
>>
>> Encima en formato ISO8601 si hace lo correcto:
>>
>>>>> dateutil.parser.parse('2014-03-25T01:04:11-03:00')
>> datetime.datetime(2014, 3, 25, 1, 4, 11, tzinfo=tzoffset(None, -10800))
> ¿Estás seguro que el formato
>
>    '03/25/2014 05:35:00 PM UTC-03:00'
>
> es correcto para indicar un huso 3 horas al oeste de UTC? (Me refiero
> en particular al "UTC"). ¿No debería ser directamente por ej.
>
>    '03/25/2014 05:35:00 PM -03:00'
>
> o
>
>    '03/25/2014 05:35:00 PM ART'
>
> ?
>
> Pienso que es posible que lo que dateutil implemente en ese parsing
> sea alguna comptibilidad para poder interpetar fechas en ese formato
> que es el formato System-V.

Ajá, ok, hay un motivo entonces, pero UTC-3 *es* una timezone, igual que 
ART es una timezone. En cambio -03:00 no es una timezone.

Y UTC-3 es una manera muy normal de indicar la timezone UTC-3, mientras 
que lo que hacía SysV es algo que nunca vi en ningun lado :-)



>
> SysV especificaba que el valor de offset era lo que tenías que
> _sumarle_ al valor previo para obtener el valor en UTC que represente
> el mismo momento. De ahí la inversión de signo respecto a POSIX.
>
> En las épocas de Red Hat 6.0 me pasó que en la selección de zona
> horaria durante al instalación del SO aparecían opciones SysV
> mezcladas con las POSIX y cuando seleccionaba "UTC-3" en realidad era
> la de SysV terminaba con la hora del sistema 6h adelantada respecto a
> la real. Tenías que buscar una opción Argentina/Buenos Aires. Luego, a
> medida que pasaron los años las opciones SysV style se fueron
> deprecando.

Ok, ahora no me siento culpable por invertir el offset después de 
parsearlo ;-)


More information about the pyar mailing list