Les date et l’heure actuelles en python

Les date et l’heure actuelles en python

  1. Objectifs

    • Etre capable d’effectuer l’analyse, le formatage et l’arithmétique des dates et des heures.
    • Apprendre comment utiliser les objets datetime et date en Python.
    • Etre capable à utiliser une fonction de formatage pour formater l’heure et la date en Python.
  2. Présentation

    • Le module datetime fournit des classes permettant de manipuler les dates et les heures de manière simple.
    • datetime.now renvoie la date et l’heure locales en cours. Si l’argument optionnel tz est None ou non spécifié, c’est comme aujourd’hui ().
    • date.strftime renvoie une chaîne représentant la date, contrôlée par une chaîne de format explicite.
      • import datetime
        now = datetime.datetime.now()
        print ("La date courante est : ")
        print (now.strftime("%H:%M:%S %d/%m/%Y "))
        
        """Sortie"""
        La date courante est : 
        09:07:18 05/05/2019 
    • Il existe deux types d’objets de date et d’heure: «naïfs» et «conscients».
      • Si un objet d’heure ou de date est naïf, il ne contient pas d’informations permettant de se comparer ou de se localiser par rapport à d’autres objets de date ou d’heure.
      • Un objet conscient, d’autre part, possède la connaissance du fuseau horaire auquel il appartient ou des informations d’heure d’été. De cette façon, il peut se localiser par rapport à d’autres objets conscients.



  3. Types disponibles

    • class datetime.date
      • Une date naïve idéalisée, en supposant que le calendrier Grégorien actuel a toujours existé et qu’il existera toujours. Attributs : année , mois et jour .
    • class datetime.time
      • Un temps idéalisé, indépendant d’une date particulière, en supposant qu’une journée est composée d’exactement 24*60*60 secondes (il n’y a pas ici de notion de “seconde bissextile”). Attributs : hour, minute, second, microsecond et tzinfo.
    • class datetime.datetime
      • Une combinaison d’une date et d’une heure. Attributs : year, month, day, hour, minute, second, microsecond, et tzinfo.
    • class datetime.timedelta
      • Une durée qui exprime la différence entre deux instances de date, time ou datetime en microsecondes.
    • class datetime.tzinfo
      • Une classe de base abstraite pour les objets portants des informations sur les fuseaux horaires. Ceux-ci sont utilisés par les classes datetime et time pour donner une notion personnalisable d’ajustement d’horaire (par exemple la prise en compte d’un fuseau horaire et/ou de l’heure d’été).
    • class datetime.timezone
      • Une classe qui implémente la classe de base abstraite tzinfo en tant qu’offset fixe par rapport au temps UTC.
  4. Les codes de formatage des dates dans le fuseau horaire américain

    • L’exemple de formatage est : dimanche 05/05/2019 17:43:33
    • symbole Sens Exemple
      %a Nom abrégé du jour de la semaine 'Wed'
      %A Nom complet en semaine 'Wednesday'
      %w Numéro de semaine – 0 (dimanche) à 6 (samedi) '0'
      %d Jour du mois (zéro capitonné) '5'
      %b Nom abrégé du mois 'mai'
      %B Nom du mois complet 'mai'
      %m Mois de l’année '01'
      %y Année sans siècle '19'
      %Y Année avec siècle '2019'
      %H Heure à partir de 24 heures '17'
      %I Heure à partir de 12 heures '05'
      %p MATIN APRÈS-MIDI 'PM'
      %M Minutes '43'
      %S Secondes '33'
      %f Microsecondes '000000'
      %z Décalage UTC pour les objets sensibles au fuseau horaire '-0500'
      %Z Nom du fuseau horaire 'EST'
      %j Jour de l’année '125'
      %W Semaine de l’année '17'
      %c Représentation de la date et de l’heure pour les paramètres régionaux actuels 'Mon mai 17 17:00:00 2019'
      %x Date de représentation pour les paramètres régionaux actuels '05/17/19'
      %X Représentation de l’heure pour les paramètres régionaux actuels '17:43:33'
      %% Un %caractère littéral '%'
    • Pour afficher les dates en français importer le module “locale” et appeler la constante “LC_TIME“.
    • Cette constante affecte la fonction : “time.strftime“.
    • import locale
      locale.setlocale(locale.LC_TIME,'')
       
      import time
      print time.strftime('%A %d/%m/%Y %H:%M:%S')
      """Affiche
      dimanche 05/05/2019 17:43:33 """
  5. Comment utiliser les classes Date et DateTime

    1. La classe date
      1. Avant d’exécuter le code pour datetime, il est important d’importer les modules de date et d’heure
        • from datetime import date, time, datetime
      2. Créer une instance de l’objet date.
        • # 2- Créer une instance de l'objet date.
              aujourdhui=date.today()
      3. Afficher la date d’aujourd’hui avec la fonction date.today
        • # 3- Afficher la date d'aujourd'hui
              print("Aujourd'hui nous somme le : ",aujourdhui)
        • La fonction date.today a plusieurs propriétés qui lui sont associées. Nous pouvons imprimer individuellement jour / mois / année et bien d’autres choses
          •     # 3-1- Afficher le jour de la date d'aujourd'hui
                print("Aujourd'hui c'est : ",aujourdhui.day)
                # 3-1- Afficher le mois en cours
                print("Le mois courant c'est : ",aujourdhui.month)
                 # 3-1- Afficher l'année en cours
                print("L'année courant c'est : ",aujourdhui.year)
        • La fonction date.today() donne également le numéro du jour de la semaine, 0 pour lundi et 6 pour dimanche.
          •     # 3-2- Afficher le numéro de jour de la semaine
                print("Le numéro numéro de jour de la semaine : ",aujourdhui.weekday())
    2. La classe datetime
      1. Avant d’exécuter le code pour datetime, il est important d’importer les modules de date et d’heure
        • from datetime import date, time, datetime
      2. Comme les objets de date, l’utilisation des objets “DATETIME” en Python, donne la date avec l’heure en heures, minutes, secondes et millisecondes.
        • # 2- Créer une instance de l'objet date.
              aujourdhui=datetime.now()
              # 3- Afficher la date d'aujourd'hui
              print("Aujourd'hui nous somme le : ",aujourdhui)
              # ce qui affiche:.....2020-08-19 10:12:38.392542
      3. Afficher uniquement l’heure actuelle sans la date avec Python
        •     # 4- Afficher l'heure actuelle
              heure=datetime.time(datetime.now())
              print("Il est : ",heure)
              # ce qui affiche:.....10:12:38.392542
        • Nous avions importé la classe de temps. Nous lui attribuerons la valeur actuelle du temps en utilisant datetime.now ()
        • Nous attribuons la valeur de l’heure courante à la variable heure.
  6. Applications

    • Utiliser les fonctions Python pour afficher le jour actuel en toute lettre
    • La fonction date.weekday() renvoie le jour de la semaine sous forme de nombre entier, où lundi vaut 0 et dimanche vaut 6.

        # 1- importer les modules de date, time, datetime
        from datetime import date, time, datetime
        def application():    
            #Afficher le jour actuelle en toute lettre
            aujourdhui=datetime.now()
            leJour = date.weekday(aujourdhui)
            lesJours = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
            print("Aujourd'hui c'est le jour numéro : %d "% leJour)
            print("Aujourd'hui c'est le  : ",lesJours[leJour])
        if __name__ == "__main__":
            application()
        """ Ce qui affiche:
        Aujourd'hui c'est le jour numéro : 2 
        Aujourd'hui c'est le  :  Mercredi
        """
    • Utiliser les fonctions Python pour afficher le mois en cours en toute lettre
    • La fonction datetime.now().month() renvoie le mois de l’année sous forme de nombre entier, où Janvier vaut 1 et décembre vaut 12.

        
        # 1- importer les modules de date, time, datetime
        from datetime import date, time, datetime
        def application():    
             #Afficher le mois actuel en toute lettre
            aujourdhui=datetime.now()
            leMois = aujourdhui.month
            lesMois = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
                       'Juillet', 'Août',
                       'Septembre', 'Octobre', 'Novembre', 'Décembre']
            print("Le mois courant est numéro : %d "% leMois)
            print("Le mois courant est  : ",lesMois[leMois-1])
        if __name__ == "__main__":
            application()
        """ Ce qui affiche:
        Le mois courant est numéro : 8 
        Le mois courant est  :  Août
        """