Ateliers Python : Utiliser la date et l`heure

publicité
Ateliers Python : Utiliser la date et l'heure
www.mon-club-elec.fr
Tous droits réservés – 2013 - 2016.
Document gratuit.
Ce support PDF d'atelier Python + Qt vous est offert.
Pour acheter d'autres supports d'ateliers Python rendez-vous ici :
http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PythonShell
Vous avez constaté une erreur ? une coquille ? N'hésitez pas à nous le signaler à cette adresse : [email protected]
Truc d'utilisation : visualiser ce document en mode diaporama dans le visionneur PDF. Navigation avec les flèches HAUT / BAS ou la souris.
En mode fenêtre, activer le panneau latéral vous facilitera la navigation dans le document. Bonne lecture !
Ateliers Python : ...– Par X. HINAULT – p. 1 / 7
Python : Utiliser la date et l'heure
Par X. HINAULT – 2013 - 2016 – www.mon-club-elec.fr – Tous droits réservés
Ce que l'on va faire ici
•
Dans ce tutoriel, apprenez à utiliser la date et l'heure.
Pré-requis : un système Gnu/Linux opérationnel
•
Je suppose ici que vous disposez
◦ d'un système graphique opérationnel (Gnu/Linux, Windows, Mac OsX) :
◦ avec Python installé ainsi que l'interpréteur Python de votre choix
Lancer l'interpréteur Python
•
Commencer par la lancer l'interpréteur Python que vous souhaitez utiliser, soit en ligne de commande depuis une console, soit à partir du menu
graphique du système.
•
Par exemple, on lancera dreampie en faisant :
$ dreampie
•
On obtient :
Ateliers Python : ...– Par X. HINAULT – p. 2 / 7
•
A noter avec Dreampie la particularité qui consiste à saisir les instructions Python dans la fenêtre du bas.
Conseil d'ami : paramétrer la fenêtre de votre interpréteur en mode « toujours au dessus » (clic droit sur la barre de titre sous Gnu/Linux) pour pouvoir
facilement travailler avec ce tuto.
Ateliers Python : ...– Par X. HINAULT – p. 3 / 7
Module datetime
Pour utiliser simplement l'heure et la date en Python, on dispose du module datetime et plus exactement de la classe datetime du module datetime.
On importera donc le module en posant :
from datetime import datetime
Les fonctions de la classe datetime seront ainsi appelable sous la forme datetime.fonction()
Note :
On pourrait très bien importer seulement :
import datetime
ce qui obligerait à appeler chaque fonction avec datetime.datetime.fonction()
La fonction racine now()
La classe datetime fournit la fonction now() qui reprend la date et l'heure dourante du système.
Voici ce que fournit la fonction now() :
datetime.now()
datetime.datetime(2016, 3, 28, 12, 1, 14, 995583)
Utiliser l'heure
Très simplement, la fonction now() permet d'accéder aux heures, minutes et secondes sous la forme d'attribut (et non de fonctions):
Ateliers Python : ...– Par X. HINAULT – p. 4 / 7
datetime.now().hour
12
datetime.now().minute
5
datetime.now().second
28
Utiliser la date
De la même façon, on peut accéder au jour, mois année :
datetime.now().day
28
datetime.now().month
3
datetime.now().year
2016
Pratique parfois, la fonction weekday() qui permet de connaître le jour de la semaine :
datetime.now().weekday()+1 # +1 pour Lundi 1 … Dimanche 7
1
Formater simplement des chaînes de date / heure
De manière simple, il sera assez facile de créer des chaînes d'horodatatge de la façon suivante :
now=datetime.now()
print ('Il est : ' + str(now.hour) + ':' + str(now.minute) + ':' + str(now.second))
De la même façon, pour la date, on fera :
Ateliers Python : ...– Par X. HINAULT – p. 5 / 7
print ('Nous sommes le : ' + str(now.day) + '/' + str(now.month) + '/' + str(now.year))
Nous sommes le : 28/3/2016
Il sera notamment très facile de réaliser des chaînes d'horodatage complètes au format voulu (qui seront directement utilisables par des librairies
graphiques notamment javascript dans le cas d'un serveur) :
print (str(now.day) + '/' + str(now.month) + '/' + str(now.year) + ' ' + str(now.hour) + ':' + str(now.minute) + ':' + str(now.second))
28/3/2016 12:19:27
Pour info, la classe datetime du module datetime fournit quelques fonctions de formatage automatique (mais pas forcément très simples à utiliser ) :
datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Monday, 28. March 2016 12:14PM'
Remarque
Je présente ici volontairement les bases strictement essentielles pour la gestion de la date et de l'heure. Savoir que la gestion de l'heure peut être très poussée en
langage Python, notamment gestion des fuseaux horaires, des écarts de temps avec calcul automatique de la nouvelle date, etc.
Truc : mettre l'heure du système à jour
Dans certaines situations, le système peut ne pas disposer d'une RTC intégrée (Real Time Clock) soit parce que la pile est HS, soit parce qu'il n'en n'a
pas (minipc).
Fixer manuellement l'heure du mini-PC
Si vous ne souhaitez pas ou ne pouvez pas laisser votre (mini-)PC connecté à internet, il reste possible de régler l'heure manuellement à l'aide d'une
commande de la forme suivante :
sudo date -s "2 OCT 2013 18:00:00"
Ateliers Python : ...– Par X. HINAULT – p. 6 / 7
Plus de détails ici : http://www.cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt/
Synchronisation automatique via le web
L'autre solution, la plus simple à utiliser en pratique, est de laisser le mini-PC avoir accès à internet : de cette façon, le mini-PC va se synchroniser
automatiquement avec ce que l'on appelle un serveur ntp. Les serveurs NTP fournissent l'heure pour les serveurs du web, élément essentiel pour la
synchronisation des machines entre-elles.
Sur un système Gnu/Linux Debian cela se fait avec la commande :
sudo apt-get install ntp
Conclusion
Vous savez accéder à l'heure et à la date à partir d'un programme Python.
Ateliers Python : ...– Par X. HINAULT – p. 7 / 7
Téléchargement