¿Cómo convierto una fecha y hora de Python en una cadena, con formato de fecha legible?

Resuelto TIMEX asked hace 14 años • 8 respuestas
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

¿Cómo convierto eso en una cadena?:

"January 28, 2010"
TIMEX avatar Jan 29 '10 05:01 TIMEX
Aceptado

La clase datetime tiene un método strftime. Los documentos de Python documentan los diferentes formatos que acepta: comportamiento de strftime() y strptime()

Para este ejemplo específico, se vería así:

my_datetime.strftime("%B %d, %Y")
Cristian avatar Jan 28 '2010 22:01 Cristian

Así es como puedes lograr lo mismo usando la función de formato general de Python...

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

Los caracteres de formato utilizados aquí son los mismos que los utilizados por strftime . No te pierdas el encabezado : en el especificador de formato.

Usar format() en lugar de strftime() en la mayoría de los casos puede hacer que el código sea más legible, más fácil de escribir y consistente con la forma en que se genera la salida formateada...

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

Compare lo anterior con la siguiente alternativa strftime()...

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

Además, lo siguiente no va a funcionar...

>>>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étera...

Sandeep Datta avatar Apr 03 '2014 15:04 Sandeep Datta

Usando cadenas f, en Python 3.6+.

from datetime import datetime

date_string = f'{datetime.now():%Y-%m-%d %H:%M:%S%z}'
date_string
# returns '2024-01-15 23:58:18'
LogTimeFormat = f'{datetime.utcnow():%Y%m%d_%H%M%S}'
LogTimeFormat
# returns time in UTC '20240116_055907'
Natim avatar Jul 10 '2018 09:07 Natim

Una pregunta muy antigua, lo sé. pero con las nuevas cadenas f (a partir de Python 3.6) hay nuevas opciones. así que aquí para completar:

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()Comportamiento explica qué significan los especificadores de formato.

hiro protagonist avatar Jul 22 '2017 12:07 hiro protagonist

El objeto de fecha y hora de Python tiene un atributo de método, que se imprime en formato legible.

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