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.