¿Cómo obtengo un formato de cadena de la fecha y hora actual, en Python?

113

Por ejemplo, el 5 de julio de 2010, me gustaría calcular la cadena

 July 5, 2010

¿Cómo debe hacerse esto?

TIMEX
fuente

Respuestas:

227

Puede usar el datetimemódulo para trabajar con fechas y horas en Python. El strftimemétodo le permite producir una representación en cadena de fechas y horas con un formato que especifique.

>>> import datetime
>>> datetime.date.today().strftime("%B %d, %Y")
'July 23, 2010'
>>> datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")
'10:36AM on July 23, 2010'
Dave Webb
fuente
34
#python3

import datetime
print(
    '1: test-{date:%Y-%m-%d_%H:%M:%S}.txt'.format( date=datetime.datetime.now() )
    )

d = datetime.datetime.now()
print( "2a: {:%B %d, %Y}".format(d))

# see the f" to tell python this is a f string, no .format
print(f"2b: {d:%B %d, %Y}")

print(f"3: Today is {datetime.datetime.now():%Y-%m-%d} yay")

1: prueba-2018-02-14_16: 40: 52.txt

2a: 4 de marzo de 2018

2b: 4 de marzo de 2018

3: Hoy es 2018-11-11 yay


Descripción:

Usando el nuevo formato de cadena para inyectar valor en una cadena en el marcador de posición {}, el valor es la hora actual.

Entonces, en lugar de simplemente mostrar el valor sin procesar como {}, use el formato para obtener el formato de fecha correcto.

https://docs.python.org/3/library/string.html#formatexamples

Pieter
fuente
Tu respuesta se marcó como de baja calidad ya que es solo de código. Intente explicar su respuesta con más profundidad.
Derek Brown
1
Probs es la mejor respuesta.
nulltron
¿Qué fsignifica en print(f"3?
Lei Yang
@ lei-yang aquí hay una explicación: realpython.com/python-f-strings marca la cadena como una cadena f, y luego python busca {} con código / variables y coloca el contenido en la cadena. Es la última incorporación de formato de cadena de python3.6
Pieter
La parte inferior de esta página https://docs.python.org/3/library/datetime.html enumera los marcadores de posición que les gustan %By lo que representan.
James Toomey
24
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%B %d, %Y")
'July 23, 2010'
Pär Wieslander
fuente
6

Si no le importa el formato y solo necesita una fecha rápida, puede usar esto:

import time
print(time.ctime())
alcance
fuente