example create python datetime datetime-parsing

python - create - Cadena de fecha de parse y formato de cambio



timestamp python (8)

Tengo una cadena de fecha con el formato ''Lun Feb 15 2010''. Quiero cambiar el formato a ''15 / 02/2010 ''. ¿Cómo puedo hacer esto?


@codeling y @ user1767754: Las siguientes dos líneas funcionarán. Vi que nadie publicó la solución completa para el problema de ejemplo que se le preguntó. Espero que esto sea suficiente explicación.

from datetime import datetime datetime.strptime("Mon Feb 15 2010", "%a %b %d %Y").strftime("%d/%m/%Y")


Como esta pregunta viene a menudo, aquí está la explicación simple.

datetime módulo de datetime y time tiene dos funciones importantes.

  • strftime : crea una representación de cadena de fecha u hora desde un objeto datetime u time.
  • strptime - crea un objeto datetime o time a partir de una cadena.

En ambos casos, necesitamos una cadena de formateo. Es la representación que indica cómo se formatea la fecha o la hora en su cadena.

Ahora supongamos que tenemos un objeto de fecha.

>>> from datetime import datetime >>> d = datetime(2010, 2, 15) >>> d datetime.datetime(2010, 2, 15, 0, 0)

Si queremos crear una cadena a partir de esta fecha en el formato ''Mon Feb 15 2010''

>>> s = d.strftime(''%a %b %d %y'') >>> print s Mon Feb 15 10

Supongamos que queremos convertir esto de nuevo a un objeto datetime .

>>> new_date = datetime.strptime(s, ''%a %b %d %y'') >>> print new_date 2010-02-15 00:00:00

Consulte This documento con todas las directivas de formato con respecto a la fecha y hora.


Puede instalar la biblioteca dateutil . Su función de parse puede averiguar en qué formato está una cadena sin tener que especificar el formato como lo hace con datetime.strptime .

from dateutil.parser import parse dt = parse(''Mon Feb 15 2010'') print(dt) # datetime.datetime(2010, 2, 15, 0, 0) print(dt.strftime(''%d/%m/%Y'')) # 15/02/2010


Solo para completar: al analizar una fecha usando strptime() y la fecha contiene el nombre de un día, mes, etc., tenga en cuenta que debe contabilizar la configuración regional.

También se menciona como una nota al pie en los docs .

Como ejemplo:

import locale print(locale.getlocale()) >> (''nl_BE'', ''ISO8859-1'') from datetime import datetime datetime.strptime(''6-Mar-2016'', ''%d-%b-%Y'').strftime(''%Y-%m-%d'') >> ValueError: time data ''6-Mar-2016'' does not match format ''%d-%b-%Y'' locale.setlocale(locale.LC_ALL, ''en_US'') datetime.strptime(''6-Mar-2016'', ''%d-%b-%Y'').strftime(''%Y-%m-%d'') >> ''2016-03-06''


convertir cadena a objeto datetime

from datetime import datetime s = "2016-03-26T09:25:55.000Z" f = "%Y-%m-%dT%H:%M:%S.%fZ" datetime = datetime.strptime(s, f) print(datetime) output: 2016-03-26 09:25:55



datetime módulo de datetime podría ayudarlo con eso:

datetime.datetime.strptime(date_string, format1).strftime(format2)


>>> from_date="Mon Feb 15 2010" >>> import time >>> conv=time.strptime(from_date,"%a %b %d %Y") >>> time.strftime("%d/%m/%Y",conv) ''15/02/2010''