Python strftime()
Python strftime()
In dit artikel leert u om datum-, tijd- en datetime-objecten te converteren naar de equivalente tekenreeks (met behulp van voorbeelden)
Video:datums en tijden in Python
De strftime()
methode retourneert een tekenreeks die datum en tijd vertegenwoordigt met behulp van datum, tijd of datetime-object.
Voorbeeld 1:datetime naar string met strftime()
Het onderstaande programma converteert een datetime
object dat de huidige datum en tijd bevat naar verschillende tekenreeksen.
from datetime import datetime
now = datetime.now() # current date and time
year = now.strftime("%Y")
print("year:", year)
month = now.strftime("%m")
print("month:", month)
day = now.strftime("%d")
print("day:", day)
time = now.strftime("%H:%M:%S")
print("time:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:",date_time)
Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:
year: 2018 month: 12 day: 24 time: 04:59:31 date and time: 12/24/2018, 04:59:31
Hier, jaar , dag , tijd en date_time zijn strings, terwijl nu is een datetime
voorwerp.
Hoe werkt strftime()?
In het bovenstaande programma, %Y
, %m
, %d
enz. zijn formaatcodes. De strftime()
methode neemt een of meer opmaakcodes als argument en retourneert een opgemaakte tekenreeks op basis daarvan.
- We hebben
datetime
geïmporteerd klas uit dedatetime
module. Het is omdat het object vandatetime
klas heeft toegang totstrftime()
methode.
- De
datetime
object met huidige datum en tijd wordt opgeslagen in nu variabel.
- De
strftime()
methode kan worden gebruikt om opgemaakte tekenreeksen te maken.
- De tekenreeks die u doorgeeft aan de
strftime()
methode kan meer dan één formaatcode bevatten.
Voorbeeld 2:String maken van een tijdstempel
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("Date time object:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Output 2:", d)
d = date_time.strftime("%d %b, %Y")
print("Output 3:", d)
d = date_time.strftime("%d %B, %Y")
print("Output 4:", d)
d = date_time.strftime("%I%p")
print("Output 5:", d)
Wanneer u het programma uitvoert, is de uitvoer:
Date time object: 2018-06-12 09:55:22 Output 2: 06/12/2018, 09:55:22 Output 3: 12 Jun, 2018 Output 4: 12 June, 2018 Output 5: 09AM
Codelijst opmaken
De onderstaande tabel toont alle codes die u kunt doorgeven aan de strftime()
methode.
Richtlijn | Betekenis | Voorbeeld |
%a | Afgekorte naam van de weekdag. | Zon, ma, ... |
%A | Volledige naam van de weekdag. | Zondag, maandag, ... |
%w | Weekdag als decimaal getal. | 0, 1, ..., 6 |
%d | Dag van de maand als een decimaal getal met nul. | 01, 02, ..., 31 |
%-d | Dag van de maand als decimaal getal. | 1, 2, ..., 30 |
%b | Afgekorte maandnaam. | Jan, Feb, ..., Dec |
%B | Naam van volledige maand. | Januari, februari, ... |
%m | Maand als een decimaal getal met nul. | 01, 02, ..., 12 |
%-m | Maand als decimaal getal. | 1, 2, ..., 12 |
%y | Jaar zonder eeuw als decimaal getal met nul. | 00, 01, ..., 99 |
%-y | Jaar zonder eeuw als decimaal getal. | 0, 1, ..., 99 |
%Y | Jaar met eeuw als decimaal getal. | 2013, 2019 enz. |
%H | Uur (24-uurs klok) als een decimaal getal met nulpunt. | 00, 01, ..., 23 |
%-H | Uur (24-uurs klok) als decimaal getal. | 0, 1, ..., 23 |
%I | Uur (12-uurs klok) als een decimaal getal met nulpunten. | 01, 02, ..., 12 |
%-I | Uur (12-uurs klok) als decimaal getal. | 1, 2, ... 12 |
%p | Lokale AM of PM. | AM, PM |
%M | Minuut als een decimaal getal met nul. | 00, 01, ..., 59 |
%-M | Minuut als decimaal getal. | 0, 1, ..., 59 |
%S | Second als een decimaal getal met nul. | 00, 01, ..., 59 |
%-S | Seconde als decimaal getal. | 0, 1, ..., 59 |
%f | Microseconde als decimaal getal, links met nul opgevuld. | 000000 - 999999 |
%z | UTC-offset in de vorm +HHMM of -HHMM. | |
%Z | Naam tijdzone. | |
%j | Dag van het jaar als decimaal getal met nul. | 001, 002, ..., 366 |
%-j | Dag van het jaar als decimaal getal. | 1, 2, ..., 366 |
%U | Weeknummer van het jaar (zondag als eerste dag van de week). Alle dagen in een nieuw jaar voorafgaand aan de eerste zondag worden beschouwd als week 0. | 00, 01, ..., 53 |
%W | Weeknummer van het jaar (maandag als eerste dag van de week). Alle dagen in een nieuw jaar voorafgaand aan de eerste maandag vallen in week 0. | 00, 01, ..., 53 |
%c | Locale's juiste datum- en tijdweergave. | Ma 30 Sep 07:06:05 2013 |
%x | Locale's juiste datumweergave. | 30/09/13 |
%X | Locale's juiste tijdweergave. | 07:06:05 |
%% | Een letterlijk '%'-teken. | % |
Voorbeeld 3:de juiste datum en tijd van de landinstelling
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Output 1:", d)
d = date_time.strftime("%x")
print("Output 2:", d)
d = date_time.strftime("%X")
print("Output 3:", d)
Wanneer u het programma uitvoert, is de uitvoer:
Output 1: Tue Jun 12 09:55:22 2018 Output 2: 06/12/18 Output 3: 09:55:22
Formaat codes %c
, %x
en %X
worden gebruikt voor de juiste weergave van datum en tijd in de landinstelling.
We raden u ook aan om Python strptime() te controleren. De strptime()
methode maakt een datetime
object uit een string.
Python