Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  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 : 24
    Points
    24

    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 :
    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 :
    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 Christian Havard
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    149
    Détails du profil
    Informations personnelles :
    Nom : Homme Christian Havard
    Localisation : Belgique

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

    Informations forums :
    Inscription : mai 2011
    Messages : 149
    Points : 223
    Points
    223

    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 :
    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 : 24
    Points
    24

    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 :
    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 Christian Havard
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    149
    Détails du profil
    Informations personnelles :
    Nom : Homme Christian Havard
    Localisation : Belgique

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

    Informations forums :
    Inscription : mai 2011
    Messages : 149
    Points : 223
    Points
    223

    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 :
    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 Christian Havard
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    149
    Détails du profil
    Informations personnelles :
    Nom : Homme Christian Havard
    Localisation : Belgique

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

    Informations forums :
    Inscription : mai 2011
    Messages : 149
    Points : 223
    Points
    223

    Par défaut Oups !

    Mon bout de code est incorrect. Il fait plutôt écrire
    Code :
    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 : 24
    Points
    24

    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
    5 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 5 388
    Points : 7 545
    Points
    7 545

    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 :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •