209 votes

Comment transformer une date python en une chaîne de caractères, avec un format de date lisible ?

t = e['updated_parsed']
dt = datetime.datetime(t[0],t[1],t[2],t[3],t[4],t[5],t[6]
print dt
>>>2010-01-28 08:39:49.000003

Comment transformer cela en une chaîne de caractères ?

"January 28, 2010"

288voto

Cristian Points 10133

La classe datetime possède une méthode strftime. La documentation de Python décrit les différents formats acceptés :

Pour cet exemple spécifique, cela ressemblerait à quelque chose comme :

my_datetime.strftime("%B %d, %Y")

122voto

Sandeep Datta Points 7344

Voici comment vous pouvez faire la même chose en utilisant la fonction de formatage général de Python...

>>>from datetime import datetime
>>>"{:%B %d, %Y}".format(datetime.now())

Les caractères de formatage utilisés ici sont les mêmes que ceux utilisés par strftime . Ne manquez pas les principaux : dans le spécificateur de format.

L'utilisation de format() au lieu de strftime() dans la plupart des cas peut rendre le code plus lisible, plus facile à écrire et cohérent avec la manière dont la sortie formatée est générée...

>>>"{} today's date is: {:%B %d, %Y}".format("Andre", datetime.now())

Comparez ce qui précède avec l'alternative suivante de strftime()...

>>>"{} today's date is {}".format("Andre", datetime.now().strftime("%B %d, %Y"))

De plus, ce qui suit ne fonctionnera pas...

>>>datetime.now().strftime("%s %B %d, %Y" % "Andre")
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    datetime.now().strftime("%s %B %d, %Y" % "Andre")
TypeError: not enough arguments for format string

Et ainsi de suite...

72voto

Natim Points 4393

Utilisation des chaînes f, en Python 3.6+.

from datetime import datetime

date_string = f'{datetime.now():%Y-%m-%d %H:%M:%S%z}'

32voto

hiro protagonist Points 1983

Je sais que c'est une très vieille question, mais avec le nouveau système de gestion de l'information, il est possible d'obtenir des informations plus précises. cordes f (à partir de Python 3.6) il y a de nouvelles options, donc ici pour être complet :

from datetime import datetime

dt = datetime.now()

# str.format
strg = '{:%B %d, %Y}'.format(dt)
print(strg)  # July 22, 2017

# datetime.strftime
strg = dt.strftime('%B %d, %Y')
print(strg)  # July 22, 2017

# f-strings in python >= 3.6
strg = f'{dt:%B %d, %Y}'
print(strg)  # July 22, 2017

strftime() y strptime() Comportement explique la signification des spécificateurs de format.

15voto

Trying2Learn Points 11

L'objet datetime de Python possède un attribut method, qui permet d'imprimer dans un format lisible.

>>> a = datetime.now()
>>> a.ctime()
'Mon May 21 18:35:18 2018'
>>>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X