Como obtenho um formato de string da data e hora atual, em python?

113

Por exemplo, em 5 de julho de 2010, gostaria de calcular a string

 July 5, 2010

Como isso deve ser feito?

TIMEX
fonte

Respostas:

227

Você pode usar o datetimemódulo para trabalhar com datas e horas em Python. O strftimemétodo permite que você produza uma representação de string de datas e horas com um formato que você especificar.

>>> 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
fonte
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: 04 de março de 2018

2b: 04 de março de 2018

3: Hoje é 11/11/2018 yay


Descrição:

Usando o novo formato de string para injetar valor em uma string no espaço reservado {}, o valor é a hora atual.

Então, em vez de apenas exibir o valor bruto como {}, use a formatação para obter o formato de data correto.

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

Pieter
fonte
Sua resposta foi sinalizada como de baixa qualidade, pois é somente código. Tente explicar sua resposta com mais detalhes.
Derek Brown
1
A melhor resposta de Probs.
nulltron
o que fsignifica em print(f"3?
Lei Yang de
@ lei-yang aqui está uma explicação: realpython.com/python-f-strings marca a string como f string e o python então procura por {} com código / variáveis ​​nele e coloca o conteúdo na string. É a mais recente adição de formatação de string python3.6
Pieter
A parte inferior desta página https://docs.python.org/3/library/datetime.html lista os marcadores de posição como %Be o que eles representam.
James Toomey
24
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%B %d, %Y")
'July 23, 2010'
Pär Wieslander
fonte
6

Se você não se importa com a formatação e só precisa de alguns dados rápidos, você pode usar isto:

import time
print(time.ctime())
escopo
fonte