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?

TIMEX
la source

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'
Dave Webb
la source
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

Pieter
la source
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'
Pär Wieslander
la source
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())
portée
la source