Odpowiedzi:
Klasa datetime ma metodę strftime. Dokumentacja Pythona dokumentuje różne formaty, które akceptuje:
W tym konkretnym przykładzie wyglądałoby to mniej więcej tak:
my_datetime.strftime("%B %d, %Y")
strftime
Python 2 i 3 różnią się?
Oto, jak możesz osiągnąć to samo, używając ogólnej funkcji formatowania Pythona ...
>>>from datetime import datetime
>>>"{:%B %d, %Y}".format(datetime.now())
Używane tutaj znaki formatujące są takie same, jak używane przez strftime . Nie przegap czołówki:
w specyfikatorze formatu.
Użycie format () zamiast strftime () w większości przypadków może uczynić kod bardziej czytelnym, łatwiejszym do napisania i spójnym ze sposobem generowania sformatowanych danych wyjściowych ...
>>>"{} today's date is: {:%B %d, %Y}".format("Andre", datetime.now())
Porównaj powyższe z następującą alternatywą strftime () ...
>>>"{} today's date is {}".format("Andre", datetime.now().strftime("%B %d, %Y"))
Co więcej, następujące rzeczy nie będą działać ...
>>>datetime.now().strftime("%s %B %d, %Y" % "Andre")
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
datetime.now().strftime("%s %B %d, %Y" % "Andre")
TypeError: not enough arguments for format string
I tak dalej...
print 'Today is {:%B %d, %Y}'.format(datetime.now())
do print 'Today is {}'.format(datetime.now().strftime('%B %d, %Y')
. Jeśli mimo wszystko używasz metody format (), dlaczego nie użyć jej również do formatowania daty?
bardzo stare pytanie, wiem. ale z nowymi f-stringami (zaczynając od Pythona 3.6) są nowe opcje. więc tutaj dla kompletności:
from datetime import datetime
dt = datetime.now()
# str.format
strg = '{:%B %d, %Y}'.format(dt)
print(strg) # July 22, 2017
# datetime.strftime
strg = dt.strftime('%B %d, %Y')
print(strg) # July 22, 2017
# f-strings in python >= 3.6
strg = f'{dt:%B %d, %Y}'
print(strg) # July 22, 2017
strftime()
a strptime()
Behavior wyjaśnia, co oznaczają specyfikatory formatu.
Obiekt datetime w Pythonie ma atrybut method, który jest drukowany w czytelnym formacie.
>>> a = datetime.now()
>>> a.ctime()
'Mon May 21 18:35:18 2018'
>>>
To jest dla sformatowania daty?
def format_date(day, month, year):
# {} betekent 'plaats hier stringvoorstelling van volgend argument'
return "{}/{}/{}".format(day, month, year)
dt = datetime.datetime(*t[:7])