IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème de formatage de date [Python 3.X]


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut Problème de formatage de date
    Bonjour,
    Je débute en python. Malgré les pages et pages de documentation trouvées, je me heurte au problème suivant. A l' aide de l' outil EifTool, j' extrais la date de création d' un cliché.Le résultat en est par exemple "date_cliché = 2015:06:17 14:25:36
    Cette information est stockée dans une première variable.
    Dans une seconde variable, je stocke 2015:06:17.
    Mon soucis, c' est que je voudrais reformater cette date en 17-06-2015.
    J' ai longuement étudié le module datetime sans trouver de solution. en effet, à la base, je suis sur une variable contenant une date et non sur une date précise.
    Existe-t-il une solution pour afficher la date contenu dans la variable en clair dans datetime(........)
    Excusez cette question débutant mais je tourne vraiment en rond

    Cordialement

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    date_cliché est de quel type ? datetime ?

    Dans ce cas utilisé la méthode strftime.

    Il y a des exemples dans la page où je vous envoie.

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut suite
    Bonsoir,

    date_cliché est de type string. J'ai tenté sans succès d'utiliser strftime. L'idéal serait, me semble-t-il de pouvoir mettre la date en clair comme ci-dessous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datetime.date(2007, 12, 5)
    C'est vraiment là que je bloque.

    Cordialement

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Si c'est une chaîne il faut là traiter en tant que telle avec ses méthodes. Sinon transformer en objet date.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Citation Envoyé par El Bosc Voir le message
    Le résultat en est par exemple "date_cliché = 2015:06:17 14:25:36
    Cette information est stockée dans une première variable.
    Dans une seconde variable, je stocke 2015:06:17.
    Mon soucis, c' est que je voudrais reformater cette date en 17-06-2015.
    Si vous n'avez pas la patience d'apprendre à utiliser .strftime/.strptime, vous devez savoir extraire des sous-chaînes de caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> s = '2015:06:17 14:25:36'
    >>> s[0:4]
    '2015'
    >>> s[5:7]
    '06'
    >>> s[8:10]
    '17'
    >>>
    et concaténer les s/chaînes pour avoir le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> s[8:10] + '-' + s[5:7] + '-' + s[0:4]
    '17-06-2015'
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut Formatage date
    Bonjour,

    Merci de vos réponses qui je pense vont solutionner mon problème. La difficulté que je rencontre, ce n' est pas de tenter de comprendre la méthode .strftime et strptime mais de les appliquer à ce problème.
    La variable reçoit de ExifTol une date mais le type de cette variable est string. Je voudrai bien comprendre comment transformer ce string en date si cela est possible. En effet, une formulation de ce type "datetime.datetime.strftime(date_cliche,'%d:%m:%Y)" renvoie en toute logique une erreur.

    Cordialement

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 41
    Par défaut
    Citation Envoyé par El Bosc Voir le message
    Bonjour,
    Existe-t-il une solution pour afficher la date contenu dans la variable en clair dans datetime(........)
    Hello,
    La solution est effectivement à chercher du côté de strptime.
    Concrètement, strftime permet d'exprimer un objet date vers une chaîne suivant des indications de formatage, et strptime fait l'inverse.
    Voir ici la doc en français qui est très praticable :
    https://docs.python.org/fr/3/library...ptime-behavior
    Les formats sont très souples et peuvent n'importe quoi. Par exemple '%d:%m:%Y' signifie jour:mois:année . Si l'on avait mis %y, on aurait eu l'année sur deux positions. strftime prend un seul paramètre puisqu'il s'applique à un objet date existant, par exemple datetime.datetime.now(), si l'on a indiqué avant import datetime .strptime a besoin de deux paramètres : la chaîne contenant la date, et celle qui contient le format.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import datetime
    datetime.datetime.strptime('12:05:2019','%d:%m:%Y')
    Je signale aussi le module babel, non inclus dans python, et qui permet des affichages avec des noms de jours et de mois, ce qui est vraiment cool.

  8. #8
    Membre confirmé
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Par défaut
    Bonjour,

    Voici donc le résultat de votre aide et de mes recherches. Je joins le code fonctionnel mais sans prétention aucune. Si cela peut aider un novice à mon image tant mieux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #!/usr/bin/env python3
     
    from tkinter import filedialog
    from tkinter import *
    from exiftool import *
    from datetime import datetime
     
    Fnt = Tk()
    Btn = Button(Fnt, text = "Quitter", command = Fnt.destroy)
    Btn.grid(column = 0, row = 0)
    Fnt.filename = filedialog.askopenfilename(initialdir = '/home/elfouste/Images', title = ' Sélectionnez un fichier', filetypes = (('jpg files', '*.jpg'),('all files', '*.*')))
    Fch = Fnt.filename
    with ExifTool() as e:
    	Date = e.get_tag('DateTimeOriginal', Fch)
    	Luminosite = e.get_tag('LightValue ', Fch)
    	Flash = e.get_tag('Flash', Fch)
     
    print ('Photo sélectionnée  : ', Fch)
    print ('Date prise de vue   : ', Date)	#Edition de la date de création
    dt = datetime.strptime(Date,"%Y:%m:%d %H:%M:%S")#Conversion de str en datetime.datetime
    print ('Date complète : ', dt)
    DtClc = dt.strftime('%d-%m-%Y')		#Date de création du cliché
    print ('Date prise de vue : ',DtClc)
    HrPrsV = dt.strftime('%H:%M:%S')	#Heure de prise de vue.
    print ('Heure prise de vue : ', HrPrsV)
    print ('Valeur de luminosité: ', Luminosite)
    print ('Flash               : ', Flash)
    if Flash == 16:
    	print ('Flash               : ', 'Inactif')
    else:
    	print ('Flash               : ', 'Actif')
    Fnt.mainloop()
    Merci à tous de votre aide.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. j'ai un problème de formatage de date avec Mysql
    Par kanebody dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/09/2009, 10h24
  2. Problème de formatage de date
    Par Shurka dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/11/2007, 15h31
  3. Problème de formatage des dates et heure dans une mshflexgrid
    Par Virtualité dans le forum VB 6 et antérieur
    Réponses: 20
    Dernier message: 27/11/2007, 14h07
  4. [Dates] problème de formatage des dates
    Par briviere dans le forum Langage
    Réponses: 3
    Dernier message: 14/10/2007, 19h40
  5. Firefox: problème de formatage de date
    Par ptr83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/10/2006, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo