Come ottengo un formato stringa della data e dell'ora corrente, in Python?


113

Ad esempio, il 5 luglio 2010, vorrei calcolare la stringa

 July 5, 2010

Come dovrebbe essere fatto?

Risposte:


227

Puoi usare il datetimemodulo per lavorare con date e ore in Python. Il strftimemetodo consente di produrre una rappresentazione di stringa di date e ore con un formato specificato.

>>> 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 marzo 2018

2b: 4 marzo 2018

3: Oggi è il 2018-11-11 yay


Descrizione:

Utilizzando il nuovo formato di stringa per inserire un valore in una stringa nel segnaposto {}, il valore è l'ora corrente.

Quindi, invece di visualizzare semplicemente il valore non elaborato come {}, utilizza la formattazione per ottenere il formato della data corretto.

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


La tua risposta è stata contrassegnata come di bassa qualità in quanto è solo codice. Prova a spiegare la tua risposta in modo più approfondito.
Derek Brown

1
Prova la migliore risposta però.
nulltron

cosa fsignifica in print(f"3?
Lei Yang

@ lei-yang ecco una spiegazione: realpython.com/python-f-strings contrassegna la stringa come stringa f, quindi python cerca {} con codice / variabili in esso e inserisce il contenuto nella stringa. È l'ultima aggiunta alla formattazione di stringhe python3.6
Pieter

La parte inferiore di questa pagina https://docs.python.org/3/library/datetime.html elenca i segnaposto come %Be cosa rappresentano.
James Toomey,

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

6

Se non ti interessa la formattazione e hai solo bisogno di qualche data veloce, puoi usare questo:

import time
print(time.ctime())
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.