example create biblioteca python python-2.7 datetime strftime

create - timedelta python example



¿Por qué "%-d", o "%-e" elimina el espacio inicial o cero? (1)

Python datetime.strftime() delega en la función C strftime() que depende de la plataforma :

El conjunto completo de códigos de formato admitidos varía en todas las plataformas, porque Python llama a la función strftime () de la biblioteca de la plataforma C y las variaciones de plataforma son comunes. Para ver el conjunto completo de códigos de formato admitidos en su plataforma, consulte la documentación strftime (3).

Notas de Glibc para strftime (3) :

- (guión) No rellenar una cadena de resultados numéricos.

El resultado en mi máquina Ubuntu:

>>> from datetime import datetime >>> datetime.now().strftime(''%d'') ''07'' >>> datetime.now().strftime(''%-d'') ''7''

En la pregunta SO 904928 (Python strftime - date without leading 0?) Ryan respondió:

En realidad, tuve el mismo problema y me di cuenta de que, si agrega un guión entre el% y la letra, puede eliminar el cero inicial.

Por ejemplo% Y /% - m /% - d.

Enfrenté el mismo problema y esa fue una gran solución, PERO, ¿por qué se comporta así?

>>> import datetime >>> datetime.datetime(2015, 3, 5).strftime(''%d'') ''05'' >>> datetime.datetime(2015, 3, 5).strftime(''%-d'') ''5'' # It also works with a leading space >>> datetime.datetime(2015, 3, 5).strftime(''%e'') '' 5'' >>> datetime.datetime(2015, 3, 5).strftime(''%-e'') ''5'' # Of course other numbers doesn''t get stripped >>> datetime.datetime(2015, 3, 15).strftime(''%-e'') ''15''

No puedo encontrar ninguna documentación sobre eso? -> python datetime docs / python string operations

Parece que esto no funciona en las máquinas de Windows, bueno, yo no uso Windows, pero sería interesante saber por qué no funciona.