web-dev-qa-db-fra.com

Comment transformer une date-heure python en chaîne, avec une date lisible au format?

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 puis-je transformer cela en une chaîne ?:

"January 28, 2010"
163
TIMEX

La classe datetime a une méthode strftime. La Python docs documente les différents formats acceptés:

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

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

Voici comment vous pouvez accomplir 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 le : principal dans le spécificateur de format.

Utiliser format () au lieu de strftime () dans la plupart des cas peut rendre le code plus lisible, plus facile à écrire et cohérent avec la façon 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 à l'alternative strftime () suivante ...

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

De plus, ce qui suit ne va pas marcher ...

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

Etc...

108
Autodidact

Utilisation de chaînes de caractères dans Python 3.6+.

from datetime import datetime

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

très vieille question, je sais. mais avec le nouveau chaînes de caractères (à partir de python 3.6), il existe de nouvelles options. alors voici pour la complétude:

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() et strptime() Behavior explique la signification des spécificateurs de format.

16
hiro protagonist

Lire strfrtime à partir de la documentation officielle.

11
S.Lott

L'objet datetime Python a un attribut method, qui est imprimé dans un format lisible.

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