¿Cómo convierto una fecha y hora de Python en una cadena, con formato de fecha legible?
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"
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")
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...
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'
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.
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'
>>>