J'essaie d'obtenir l'heure locale actuelle sous forme de chaîne au format: année-mois-jour heure: minutes: secondes. Que j'utiliserai pour la journalisation. En lisant la documentation, je peux le faire en:
import time
'{0:%Y-%m-%d %H:%M:%S}'.format(time.localtime())
Cependant, je reçois l'erreur:
Traceback (dernier appel le plus récent): Fichier "", ligne 1, dans ValueError: spécificateur de format non valide
Qu'est-ce que je fais mal? Y a-t-il une meilleure façon?
time.localtime
Retour time.struct_time
qui ne prend pas en charge le formatage de type strftime.
Passer datetime.datetime
objet prenant en charge le formatage strftime. (Voir datetime.datetime.__format__
)
>>> import datetime
>>> '{0:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now())
'2014-02-07 11:52:21'
Vous pouvez également utiliser time.strftime
:
time.strftime('{%Y-%m-%d %H:%M:%S}')
Et pour les versions plus récentes de Python (3.6+, https://www.python.org/dev/peps/pep-0498/ uniquement pour être complet), vous peut utiliser le formatage de chaîne plus récent, à savoir.
import datetime
today = datetime.date.today()
f'{today:%Y-%m-%d}'
> '2018-11-01'