Jak uzyskać ciąg znaków w formacie bieżącej daty i godziny w Pythonie?

113

Na przykład 5 lipca 2010 r. Chciałbym obliczyć ciąg

 July 5, 2010

Jak to zrobić?

TIMEX
źródło

Odpowiedzi:

227

Możesz użyć datetimemodułu do pracy z datami i godzinami w Pythonie. strftimeMetoda pozwala produkować reprezentację ciąg daty i godziny w formacie określonym przez użytkownika.

>>> 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
źródło
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 marca 2018 r

2b: 4 marca 2018 r

3: Dzisiaj jest 11.11.2018 r


Opis:

Używając nowego formatu ciągu do wstrzyknięcia wartości do łańcucha w miejscu symbolu zastępczego {}, wartość oznacza bieżący czas.

Zamiast wyświetlać nieprzetworzoną wartość jako {}, użyj formatowania, aby uzyskać prawidłowy format daty.

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

Pieter
źródło
Twoja odpowiedź została oznaczona jako niskiej jakości, ponieważ zawiera tylko kod. Spróbuj dokładniej wyjaśnić swoją odpowiedź.
Derek Brown
1
Najlepszą odpowiedzią są jednak żarty.
nulltron
co to fznaczy w print(f"3?
Lei Yang
@ lei-yang tutaj jest wyjaśnienie: realpython.com/python-f-strings oznacza ciąg jako f, a następnie python szuka {} z kodem / zmiennymi w nim i umieszcza zawartość w ciągu. Jest to najnowszy dodatek do formatowania ciągów w Pythonie3.6
Pieter
U dołu tej strony https://docs.python.org/3/library/datetime.html znajduje się lista symboli zastępczych, takich jak %Bi co one reprezentują.
James Toomey
24
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%B %d, %Y")
'July 23, 2010'
Pär Wieslander
źródło
6

Jeśli nie zależy Ci na formatowaniu i potrzebujesz tylko szybkiej daty, możesz użyć tego:

import time
print(time.ctime())
zakres
źródło