11
votes

Comment imprimer uniquement la date et non inclure l'heure dans DateTime.DateTime.strptime ()

J'ai ce code:

>>> import datetime
>>> l = '2011-12-02'
>>> t = datetime.datetime.strptime(l, '%Y-%m-%d')
>>> print t
2011-12-02 00:00:00


1 commentaires

BTW, vous recherchez vraiment comment obtenir une chaîne formatée d'une instance de DateTime . La fonction STRIPTIME prend simplement une chaîne et vous donne une nouvelle instance de DateTime . Comprendre cette différence vous aidera à travailler à travers des choses comme celle-ci à l'avenir.


4 Réponses :


5
votes

4 commentaires

TIME.StrfTime est en train de formater en premier, le temps seconde, et le temps n'est pas un DateTime (que notre op a), mais un structure_time . Il devrait utiliser le StrfTime dans le module DateTime .


J'ai édité ma réponse A Loong il y a longtemps. Le code fonctionne, comme je l'ai testé avant de répondre. Si vous êtes confus sur le lien, désolé. Je l'ai utilisé comme exemple de la syntaxe, pas de la fonction réelle ...


Le code que vous avez initialement écrit ne fonctionnait définitivement pas et vous pouvez blâmer le modèle d'éventuel évident apparent pour la raison pour laquelle ma vision de votre réponse n'a jamais été mise à jour pendant que je pouvais voir vos nouveaux commentaires.


Tant pis. J'ai suivi trois révisions avant de supprimer ma réponse, alors mettez-vous la latence!



1
votes

Je pense que vous devriez utiliser comme ceci xxx

ou votre code: xxx


0 commentaires

24
votes
>>> t.strftime('%Y-%m-%d')
'2011-12-02'

1 commentaires

Y a-t-il une façon de ne pas devenir une chaîne?



1
votes

Vous devez spécifier le format de sortie pour la date, par exemple. En utilisant xxx

toute la lettre après un "%" représente un format:% d est le numéro de la journée,% m est le numéro de mois,% y est l'année dernière deux derniers chiffres,% y est l'année toute l'année


0 commentaires