Estoy usando pickadate.js
que devuelve la fecha en este formato:
8 March, 2017
Me gustaría convertir esto al formato de datetime
y hora de:
yyyy-mm-dd
¿Cuál sería la mejor manera de hacer esto en Python?
En Python, este es un ejercicio sencillo para usar las cadenas de formato de fecha y datetime
:
from datetime import datetime s = "8 March, 2017" d = datetime.strptime(s, '%d %B, %Y') print(d.strftime('%Y-%m-%d'))
Consulte esta tabla para obtener una descripción completa de todos los calificadores de formato.
Aquí uso el método datetime.strptime
para convertir su cadena datepicker.js en un objeto de fecha y hora de Python. Y uso el método .strftime
para imprimir ese objeto como una cadena usando el formato que desee. Al principio, esas cadenas de formato serán difíciles de recordar, pero siempre puede buscarlas. Y ellos bien organizados, al final.
Sin embargo, me pregunto: ¿sería mejor permanecer en JavaScript que cambiar a Python para este último paso? Por supuesto, si está utilizando Python en otra parte de su proceso, esta es una solución fácil.
El consejo de Mark Reed podría ser el mejor en su caso. Una alternativa frecuentemente pasada por alto para las fechas es el módulo de flechas , que ofrece algunas características interesantes. En este caso puedes hacer:
>>> import arrow >>> arrow.get('8 March, 2017', 'D MMMM, YYYY').format('YYYY-MM-DD') '2017-03-08'
Como ejemplo de una característica, si captura esa fecha, podría formatearla en ruso.
>>> aDate = arrow.get('8 March, 2017', 'D MMMM, YYYY') >>> aDate.format('YYYY MMMM DD', locale='ru') '2017 марта 08'