Hoe tekenreeks naar datetime te converteren

  1. datetime.strptime() om string naar datetime om te zetten
  2. datetime.strptime() Voorbeelden

In deze tutorial wordt uitgelegd hoe je kan converteren string naar datetime in Python en worden ook enkele voorbeeldcodes vermeld voor populaire datetime string formaten.

datetime.strptime() om string naar datetime om te zetten

In de vorige tutorial hebben we geleerd hoe we de datetime in tekenreeksindeling kunnen krijgen met behulp van de datetime.strftime() methode . We zullen de datetime.strptime() methode gebruiken om de revere-conversie te doen om het datetime object te krijgen . f en p in beide werkwijzen betekenen format en parse respectievelijk.

datetime.strptime() methode ontleedt de invoertekenreeks met de opgegeven datetime indeling en retourneert het datetime object.

Het basisvoorbeeld om deze strptime() methode te gebruiken , wordt hieronder weergegeven,

from datetime import datetime

datetime.strptime("2018-01-31", "%Y-%m-%d")

Het resultaat zal zijn

datetime.datetime(2018, 1, 31, 0, 0)

De richtlijnen van de stringformaatcodes worden hier ter referentie vermeld

Richtlijn Betekenis Voorbeeld
%a Weekdag als verkorte naam van de locatie. Sun, Mon, …, Sat (nl_US); Dus, Mo, …, Sa (de_DE)
%A Weekdag als de volledige naam van de locatie. Zondag, maandag, …, zaterdag (nl_NL); Sonntag, Montag, …, Samstag (de_DE)
%w Weekdag als een decimaal getal, waarbij 0 zondag is en 6 zaterdag. 0, 1, …, 6
%d Dag van de maand als een nul opgevuld decimaal getal. 01, 02, …, 31
%b Maand als de verkorte naam van de locatie. Jan, Feb, …, Dec (en_US); Jan, Feb, …, Dez (de_DE)
%B Maand als de volledige naam van de locatie. Januari, februari, …, december (nl_NL); januari, februari, …, dezember (de_DE)
%m Maand als een nul opgevuld decimaal getal. 01, 02, …, 12
%y Jaar zonder eeuw als een nul opgevuld decimaal getal. 00, 01, …, 99
%Y Jaar met eeuw als decimaal getal. 0001, 0002, …, 2013, 2014, …, 9998, 9999
%H Uur (24-uurs klok) als een nul opgevuld decimaal getal. 00, 01, …, 23
%I Uur (12-uurs klok) als een nul opgevuld decimaal getal. 01, 02, …, 12
%p Lokaal is het equivalent van AM of PM. AM, PM (en_US); am, pm (de_DE)
%M Minuut als een nul opgevuld decimaal getal. 00, 01, …, 59
%S Ten tweede als een nul opgevuld decimaal getal. 00, 01, …, 59
%f Microseconde als een decimaal getal, aan de linkerkant nul opgevuld. 000000, 000001, …, 999999
%z UTC-offset in de vorm ± HHMM[SS] (lege string als het object naïef is) . (leeg), +0000, -0400, +1030
%Z Naam tijdzone (lege string als het object naïef is). (leeg), UTC, EST, CST
%j Dag van het jaar als een nul opgevuld decimaal getal. 001, 002, …, 366
%U Weeknummer van het jaar (zondag als de eerste dag van de week) als een nul opgevuld decimaal getal. Alle dagen in een nieuw jaar voorafgaand aan de eerste zondag worden beschouwd als in week 0. 00, 01, …, 53
%W Weeknummer van het jaar (maandag als de eerste dag van de week) als een decimaal getal. Alle dagen in een nieuw jaar voorafgaand aan de eerste maandag worden beschouwd als in week 0. 00, 01, …, 53
%c De juiste datum en tijdweergave van de landinstelling. Di 16 aug 21:30:00 1988 (nl_NL); Di 16 aug 21:30:00 1988 (de_DE)
%x De juiste datumweergave van de landinstelling. 08/16/88 (Geen); 08/16/1988 (en_US); 16.08.1988 (de_DE)
%X De juiste tijdsrepresentatie van de landinstelling. 21:30:00 (nl_NL); 21: 30: 00 (de_DE)
%% Een letterlijk '%' karakter. %

datetime.strptime() Voorbeelden

7-May-2013 formaat

from datetime import datetime

dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)

uitgang

datetime.datetime(2013, 5, 1, 0, 0)

31/12/2018 formaat

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

uitgang

datetime.datetime(2013, 12, 31, 0, 0)

Mon, July 16 2018 formaat

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

uitgang

datetime.datetime(2018, 7, 16, 0, 0)

Monday, July 16, 2018 20:01:56 formaat

from datetime import datetime

dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)

Output:

datetime.datetime(2018, 7, 16, 20, 1, 56)

Gerelateerde Artikelen - Python String

  • Hoe controleer je of een string leeg is op een pythonische manier
  • Hoe witruimte in een string te verwijderen
  • Hoe tekenreeks naar kleine letters te converteren in Python 2 en 3
  • Gerelateerde Artikelen - Python DateTime

  • Hoe controleer je of een string leeg is op een pythonische manier
  • Hoe witruimte in een string te verwijderen
  • Hoe tekenreeks naar kleine letters te converteren in Python 2 en 3