Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > fr.comp.lang.python > #4057

datetime : passer d'« offset-naive » à « offset-aware »

From Olivier Miakinen <om+news@miakinen.net>
Newsgroups fr.comp.lang.python
Subject datetime : passer d'« offset-naive » à « offset-aware »
Date 2023-05-14 21:29 +0200
Organization There's no cabale
Message-ID <u3rcqv$28fu$1@cabale.usenet-fr.net> (permalink)

Show all headers | View raw


Bonjour,

Je voudrais pouvoir comparer en python des dates de courriels, au format défini
par le RFC2822. Pour cela, j'utilise la fonction parsedate_to_datetime() qui est
définie dans le module email.utils :

from email.utils import parsedate_to_datetime
date = parsedate_to_datetime("Sat, 13 May 2023 12:00:00 +0200")


Tout fonctionne très bien, y compris lorsque le timezone est +0000. Mais lorsque
c'est -0000 le datetime correspondant se retrouve sans aucun tzinfo :

date1 = parsedate_to_datetime("Sat, 13 May 2023 12:00:00 +0000")
-> datetime.datetime(2023, 5, 13, 12, 0, tzinfo=datetime.timezone.utc)

date2 = parsedate_to_datetime("Sat, 13 May 2023 12:00:00 -0000")
-> datetime.datetime(2023, 5, 13, 12, 0)


Le problème est qu'alors python refuse de faire la différence entre ce datetime
sans tzinfo et ceux qui en ont un :

date1 - date2
-> TypeError: can't subtract offset-naive and offset-aware datetimes


D'où ma question : comment détecter qu'un datetime n'a pas de tzinfo, et dans
ce cas seulement lui coller le tzinfo=datetime.timezone.utc ? Ou bien, autre
solution, est-ce que je peux remplacer parsedate_to_datetime() par une fonction
qui définirait bien le tzinfo dans tous les cas ?

-- 
Olivier Miakinen

Back to fr.comp.lang.python | Previous | NextNext in thread | Find similar


Thread

datetime : passer d'« offset-naive » à « offset-aware » Olivier Miakinen <om+news@miakinen.net> - 2023-05-14 21:29 +0200
  Re: datetime : passer d'« offset-naive » à « offset-aware » Olivier Miakinen <om+news@miakinen.net> - 2023-05-14 21:56 +0200
    Re: datetime : passer d'« offset-naive » à « offset-aware » Olivier Miakinen <om+news@miakinen.net> - 2023-05-14 22:20 +0200
      Re: datetime : passer d'« offset-naive » à « offset-aware » Thierry Pinelli <festiventu+news@gmail.com> - 2023-05-15 10:36 +0200
        Re: datetime : passer d'« offset-naive » à « offset-aware » Olivier Miakinen <om+news@miakinen.net> - 2023-05-15 15:33 +0200
          Re: datetime : passer d'« offset-naive » à « offset-aware » "pata...@gmail.com" <patatetom@gmail.com> - 2023-05-25 06:48 -0700
            Re: datetime : passer d'« offset-naive » à « offset-aware » Olivier Miakinen <om+news@miakinen.net> - 2023-05-25 17:31 +0200
              Re: datetime : passer d'« offset-naive » à « offset-aware » Jo Engo <yl@icite.fr> - 2024-12-28 17:16 +0000
                Re: datetime : passer d'« offset-naive » à « offset-aware » Olivier Miakinen <om+news@miakinen.net> - 2024-12-28 21:13 +0100

csiph-web