p
u
b
l
i
c
i
t
é
publicité
  1. #1
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2013
    Messages : 35
    Points : 27
    Points
    27

    Par défaut Date formatée des 100 dernières timestamp

    Bonjour à tous!

    Je bloque actuellement sur un problème qui me semble simple, et malgré de multiples essai et la lecture de la documentation, ça marche jamais

    Je souhaite récuperer la date des 100 dernières secondes, (pour info, c'est ça que je veux, et pas autre chose, il n'y a que cette solution qui m'aille)

    time.strftime("%d%m%Y - %H:%M:%S") # renvoie la date actuelle de façon formatée

    mais j'aurais voulu pouvoir lui passer un timestamp en paramètre, je sais que c'est possible, mais c'est une liste à lui passer et je ne connait que le timestamp.

    voilà mon simple code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import time,datetime
    number=0
    while number<100:
    	print(datetime.fromtimestamp(time.time()-number))
    	#on utilise strftime pour la suite
    	number+=1
    et voilà l'erreur rencontré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    datetime.fromtimestamp(time.time())
    AttributeError: 'module' object has no attribute 'fromtimestamp'
    Pouvez-vous m'aider ?

    ps : ma version de python 3.2.2

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2011
    Messages : 177
    Points : 291
    Points
    291

    Par défaut

    Bonjour,

    En faisant : tu importe le module time et le moduledatetime

    Pour faire ce que tu souhaite, tu aura besoin de la classedatetime
    que tu importera comme suit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from datetime import datetime

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2013
    Messages : 35
    Points : 27
    Points
    27

    Par défaut

    Je comprend pas tout ^^" j'import tout le module, ça marche pas, et là si....

    Bref, j'y réfléchirais à tête reposé

    Merci beaucoup à toi!

    voilà le code final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import time
    from datetime import datetime
    time_start=int(time.time())
    number=0
    while number<100:
    	print(datetime.fromtimestamp(time_start-number))
    	number+=1

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2011
    Messages : 177
    Points : 291
    Points
    291

    Par défaut

    C'est très simple:

    Dans ton premier code tu cherchais à utiliser une fonction fromtimestamp
    qui existerait au niveau du module. Mais celui-ci n'en dispose pas.

    Par contre, la classe datetime a une méthode qui permet d'en construire une instance à partir d'un timestamp.

    Ainsi, si tu veux absolument importer tout le module, il faudra écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datetime.datettime.fromtimestamp(time_start-number)
    Par ailleurs, j'ai l'impression que suivre un tuto sur les bases de la poo ne te ferait pas de mal.

    L'idée de base est que tout est objet en python. Ainsi, plutôt que d'écrire des modules qui sont des collections de structures et de fonction (comme en c), on y définira des classes qui embarquera à la fois données et méthodes fonctionnant sur celles-ci.

    Cela permet au fonctions génériques, toujours disponibles, de "marcher" avec un de nouveaux objets sans modifications.

    J'en veux pour seul exemple la fonction str. Tout ce qu'elle fait est d'appeler
    la méthode spéciale __str__ de l'objet qu'on lui passe en argument.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2011
    Messages : 177
    Points : 291
    Points
    291

    Par défaut Oups !

    Mon bout de code est incorrect. Il fait plutôt écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datetime.datetime.fromtimestamp(time_start-number)
    (sans redoubler le t)

  6. #6
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2013
    Messages : 35
    Points : 27
    Points
    27

    Par défaut

    @chticricri
    Merci pour l'explication, je comprend mieux

    Pour la POO, je connait (je suis pas un expert non plus) mais instance, attributs, methode, je comprend
    De plus ce bout de code, fait partie d'un projet coder en POO...

    Encore merci par ton explication, on m'y reprendras plus, c'est juré !

  7. #7
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    6 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 6 678
    Points : 10 288
    Points
    10 288

    Par défaut

    Salut,
    Je ne vois pas l'intérêt de passer par datetime alors qu'on a déjà les "bonnes" fonctions dans "time":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import time
     
    def get_timestamps(start=0, count=100):
        start = start or time.time()
        return [ time.strftime ("%d%m%Y - %H:%M:%S",
                                time.gmtime(start-n)
                                ) for n in range(count) ]
     
    print (get_timestamps(count=10))
    - W
    Architectures Post-Modernes

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

Discussions similaires

  1. Conservation des 100 dernières lignes d'une table
    Par JCD21 dans le forum Débuter
    Réponses: 8
    Dernier message: 01/06/2011, 18h21
  2. Format des dates
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h03
  3. Comparaison de 2 dates dans des formats différents
    Par frdek dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/02/2005, 15h05
  4. [C#] Format des dates pour une ComboBox...
    Par frechy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/01/2005, 17h08
  5. [Date] Comparer des dates au format mySQL "date
    Par Marc_P dans le forum java.util
    Réponses: 3
    Dernier message: 25/10/2004, 15h15

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