Yo,
qqn sait comment faire marcher ce code ?
dans le meilleur des cas j'ai XLDateTooLargeCode:
1
2 wesh = 1448965420402 print(xlrd.xldate_as_tuple(wesh, 0))
dans l'autre cas j'ai '<' not supported between instances of 'str' and 'float'
Version imprimable
Yo,
qqn sait comment faire marcher ce code ?
dans le meilleur des cas j'ai XLDateTooLargeCode:
1
2 wesh = 1448965420402 print(xlrd.xldate_as_tuple(wesh, 0))
dans l'autre cas j'ai '<' not supported between instances of 'str' and 'float'
Salut,
Quand on sait pas, on cherche des exemples sur Internet et c'est pas compliqué avec xlrd.xldate_as_tuple comme mot clef.
- W
Il y a déjà la documentation et une indication sur le message d'erreur.
Bossez moins mais mieux!
- W
C est bon. C est un timestamp format. Les nombres excel sont toujours de 5 chiffres.
En plus celui ci ne se convertit qu à partir d un site americain.
C'est bon pour les nombres excel. il fallait savoir que les dates excel ont 5 chiffres. si on sait pas forcément le code ne convient pas.Citation:
Quel autre cas ?
Code:
1
2 date_excel = 40777 recup_2 = xlrd.xldate_as_datetime(date_excel, 0)
bah vas y fais toi plaisir mecCitation:
Lire des choses comme ça ça en arrive presque à faire peur 8O
prends 1448968975305. essaye un site français timestamp.fr et un site américain epochconverter.com, tu verras lequel te sort la bonne réponse
essaye aussi avec
j'ai pas réussi. apparemment le code marche qu'avec les timestamp courts type 1605693715Code:
1
2
3
4 from datetime import datetime timestamp = 1448968975305 recup = datetime.fromtimestamp(timestamp)
Par défaut, un timestamp est donné en secondes (et éventuellement en fractions de secondes).
1448968975305 pourrait aller si c'était des millisecondes mais il faut faire la conversion avant de le passer à une fonction qui s'attend à récupérer des secondes sinon çà se plante avec un équivalent de "Gregorian year 10000 or later"
Là vous avez de la chance, çà ne marche pas. Mais si vous utiliser une fonction qui prend un type d'arguments et que vous ne faites pas l'effort de vérifier que vous passez de bonnes données, elle vous fabriquera un résultat sans erreur (et vous l'utiliserez pour d'autres calculs qui seront tous faux sans vous en rendre compte avant un certain temps).
- W
Et c'est quoi la "bonne réponse" ??? N'importe quelle convention disant "1448968975305" c'est telle date telle heure" sera une bonne réponse pour celui qui respecte la convention. Ainsi "timestamp.fr" répond "31/12/47885 à 6:01:45" (pourquoi pas ?) tandis que epochconverter.com commence par présumer qu'il s'agit de millisecondes (petit message "Assuming that this timestamp is in milliseconds"). Tous deux ont raison selon leur point de vue. C'est à toi de fournir des données correctes si tu veux avoir des résultats corrects.
Sais-tu seulement ce qu'est un timestamp en général et celui d'Unix en particulier ??? 8O
La donnée étant juste un entier, il est correct.
Ce qui est discutable, c'est la moulinette dans laquelle on le fait passer car outre le soucis des unités, l'interprétation de sa valeur ne sera pas la même pour Linux/POSIX, Windows, DOS, Excel,... et on aura autant de résultats différents.
- W