[pyar] Consulta dateutil

Ramiro Morales cramm0 en gmail.com
Mar Mar 25 18:58:38 ART 2014


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.

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.

HTH,

-- 
Ramiro Morales
@ramiromorales


More information about the pyar mailing list