Comment obtenir un format de chaîne de la date et de l'heure actuelle, en python?


113

Par exemple, le 5 juillet 2010, je voudrais calculer la chaîne

 July 5, 2010

Comment cela devrait-il être fait?

Réponses:


227

Vous pouvez utiliser le datetimemodule pour travailler avec des dates et des heures en Python. La strftimeméthode vous permet de produire une représentation sous forme de chaîne de dates et d'heures avec un format que vous spécifiez.

>>> import datetime
>>> datetime.date.today().strftime("%B %d, %Y")
'July 23, 2010'
>>> datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")
'10:36AM on July 23, 2010'

34
#python3

import datetime
print(
    '1: test-{date:%Y-%m-%d_%H:%M:%S}.txt'.format( date=datetime.datetime.now() )
    )

d = datetime.datetime.now()
print( "2a: {:%B %d, %Y}".format(d))

# see the f" to tell python this is a f string, no .format
print(f"2b: {d:%B %d, %Y}")

print(f"3: Today is {datetime.datetime.now():%Y-%m-%d} yay")

1: test-2018-02-14_16: 40: 52.txt

2a: 4 mars 2018

2b: 4 mars 2018

3: Aujourd'hui, c'est le 11/11/2018


La description:

En utilisant le nouveau format de chaîne pour injecter une valeur dans une chaîne à l'espace réservé {}, la valeur est l'heure actuelle.

Ensuite, plutôt que d'afficher simplement la valeur brute sous la forme {}, utilisez le formatage pour obtenir le format de date correct.

https://docs.python.org/3/library/string.html#formatexamples


Votre réponse a été signalée comme étant de mauvaise qualité car elle est uniquement codée. Essayez d'expliquer votre réponse plus en profondeur.
Derek Brown

1
Probs meilleure réponse cependant.
nulltron

qu'est-ce que ça fveut dire print(f"3?
Lei Yang

@ lei-yang voici une explication: realpython.com/python-f-strings il marque la chaîne comme chaîne f, et python recherche alors {} avec du code / des variables dedans, et place le contenu dans la chaîne. C'est le dernier ajout de formatage de chaîne python3.6
Pieter

Le bas de cette page https://docs.python.org/3/library/datetime.html répertorie les espaces réservés %Bet ce qu'ils représentent.
James Toomey

24
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%B %d, %Y")
'July 23, 2010'

6

Si vous ne vous souciez pas du formatage et que vous avez juste besoin d'une date rapide, vous pouvez utiliser ceci:

import time
print(time.ctime())
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.