Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python datetime

Python datetime

In dit artikel leer je aan de hand van voorbeelden de datum en tijd in Python te manipuleren.

Video:Python datetime - Werken met datums en tijden

Python heeft een module met de naam datetime werken met data en tijden. Laten we een paar eenvoudige programma's maken met betrekking tot datum en tijd voordat we dieper graven.


Voorbeeld 1:huidige datum en tijd ophalen

import datetime

datetime_object = datetime.datetime.now()
print(datetime_object)

Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:

2018-12-19 09:26:03.478039

Hier hebben we datetime . geïmporteerd module met behulp van import datetime verklaring.

Een van de klassen gedefinieerd in de datetime module is datetime klas. We gebruikten toen now() methode om een ​​datetime . te maken object dat de huidige lokale datum en tijd bevat.


Voorbeeld 2:huidige datum ophalen


import datetime

date_object = datetime.date.today()
print(date_object)

Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:

2018-12-19

In dit programma hebben we today() . gebruikt methode gedefinieerd in de date klasse om een ​​date . te krijgen object dat de huidige lokale datum bevat.


Wat is er binnen datetime?

We kunnen de functie dir() gebruiken om een ​​lijst te krijgen met alle attributen van een module.

import datetime

print(dir(datetime))

Wanneer u het programma uitvoert, is de uitvoer:


['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

Veelgebruikte klassen in de datetime-module zijn:

  • datum les
  • tijd les
  • datetime-les
  • timedelta-klasse

datetime.date Klasse

U kunt date instant instantiëren objecten uit de date klas. Een datumobject vertegenwoordigt een datum (jaar, maand en dag).


Voorbeeld 3:Datumobject om een ​​datum weer te geven


import datetime

d = datetime.date(2019, 4, 13)
print(d)

Wanneer u het programma uitvoert, is de uitvoer:

2019-04-13

Als je je afvraagt, date() in het bovenstaande voorbeeld is een constructor van de date klas. De constructor gebruikt drie argumenten:jaar, maand en dag.

De variabele a is een date voorwerp.


We kunnen alleen date import importeren klas uit de datetime module. Dit is hoe:


from datetime import date

a = date(2019, 4, 13)
print(a)

Voorbeeld 4:huidige datum ophalen

U kunt een date . maken object dat de huidige datum bevat met behulp van een klassenmethode met de naam today() . Dit is hoe:


from datetime import date

today = date.today()

print("Current date =", today)

Voorbeeld 5:Haal datum uit een tijdstempel

We kunnen ook date . maken objecten uit een tijdstempel. Een Unix-tijdstempel is het aantal seconden tussen een bepaalde datum en 1 januari 1970 bij UTC. U kunt een tijdstempel tot op heden converteren met fromtimestamp() methode.


from datetime import date

timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)

Wanneer u het programma uitvoert, is de uitvoer:

Date = 2012-01-11

Voorbeeld 6:Druk het jaar, de maand en de dag van vandaag af

We kunnen gemakkelijk jaar, maand, dag, dag van de week enz. uit het datumobject halen. Dit is hoe:


from datetime import date

# date object of today's date
today = date.today() 

print("Current year:", today.year)
print("Current month:", today.month)
print("Current day:", today.day)

datetime.time

Een tijdobject geïnstantieerd uit de time klasse staat voor de lokale tijd.


Voorbeeld 7:Tijdobject om tijd weer te geven


from datetime import time

# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a)

# time(hour, minute and second)
b = time(11, 34, 56)
print("b =", b)

# time(hour, minute and second)
c = time(hour = 11, minute = 34, second = 56)
print("c =", c)

# time(hour, minute, second, microsecond)
d = time(11, 34, 56, 234566)
print("d =", d)

Wanneer u het programma uitvoert, is de uitvoer:


a = 00:00:00
b = 11:34:56
c = 11:34:56
d = 11:34:56.234566

Voorbeeld 8:Uren, minuten, seconden en microseconden afdrukken

Nadat u een time . heeft gemaakt object, kunt u eenvoudig de kenmerken ervan afdrukken, zoals uur , minuut enz.


from datetime import time

a = time(11, 34, 56)

print("hour =", a.hour)
print("minute =", a.minute)
print("second =", a.second)
print("microsecond =", a.microsecond)

Wanneer u het voorbeeld uitvoert, is de uitvoer:


hour = 11
minute = 34
second = 56
microsecond = 0

Merk op dat we microseconde nog niet zijn gepasseerd argument. Vandaar de standaardwaarde 0 wordt afgedrukt.


datetime.datetime

De datetime module heeft een klasse met de naam dateclass die informatie kan bevatten van beide datum en tijd objecten.


Voorbeeld 9:Python datetime-object


from datetime import datetime

#datetime(year, month, day)
a = datetime(2018, 11, 28)
print(a)

# datetime(year, month, day, hour, minute, second, microsecond)
b = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(b)

Wanneer u het programma uitvoert, is de uitvoer:


2018-11-28 00:00:00
2017-11-28 23:55:59.342380

De eerste drie argumenten jaar , maand en dag in de datetime() constructor zijn verplicht.


Voorbeeld 10:Jaar, maand, uur, minuut en tijdstempel afdrukken


from datetime import datetime

a = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("year =", a.year)
print("month =", a.month)
print("hour =", a.hour)
print("minute =", a.minute)
print("timestamp =", a.timestamp())

Wanneer u het programma uitvoert, is de uitvoer:


year = 2017
month = 11
day = 28
hour = 23
minute = 55
timestamp = 1511913359.34238

datetime.timedelta

Een timedelta object vertegenwoordigt het verschil tussen twee datums of tijden.


Voorbeeld 11:verschil tussen twee datums en tijden


from datetime import datetime, date

t1 = date(year = 2018, month = 7, day = 12)
t2 = date(year = 2017, month = 12, day = 23)
t3 = t1 - t2
print("t3 =", t3)

t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33)
t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13)
t6 = t4 - t5
print("t6 =", t6)

print("type of t3 =", type(t3)) 
print("type of t6 =", type(t6))  

Wanneer u het programma uitvoert, is de uitvoer:


t3 = 201 days, 0:00:00
t6 = -333 days, 1:14:20
type of t3 = <class 'datetime.timedelta'>
type of t6 = <class 'datetime.timedelta'>

Let op, beide t3 en t6 zijn van <class 'datetime.timedelta'> typ.


Voorbeeld 12:Verschil tussen twee tijddelta-objecten


from datetime import timedelta

t1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33)
t2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54)
t3 = t1 - t2

print("t3 =", t3)

Wanneer u het programma uitvoert, is de uitvoer:


t3 = 14 days, 13:55:39

Hier hebben we twee timedelta objecten t1 en t2 en hun verschil wordt op het scherm afgedrukt.


Voorbeeld 13:Negatief tijddelta-object afdrukken


from datetime import timedelta

t1 = timedelta(seconds = 33)
t2 = timedelta(seconds = 54)
t3 = t1 - t2

print("t3 =", t3)
print("t3 =", abs(t3))

Wanneer u het programma uitvoert, is de uitvoer:


t3 = -1 day, 23:59:39
t3 = 0:00:21

Voorbeeld 14:Tijdsduur in seconden

U kunt het totale aantal seconden in een tijddelta-object verkrijgen met total_seconds() methode.


from datetime import timedelta

t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423)
print("total seconds =", t.total_seconds())

Wanneer u het programma uitvoert, is de uitvoer:


total seconds = 435633.233423

Je kunt ook de som van twee datums en tijden vinden met + exploitant. U kunt ook een timedelta . vermenigvuldigen en delen object door gehele getallen en floats.


Python-formaat datetime

De manier waarop datum en tijd worden weergegeven, kan verschillen in verschillende plaatsen, organisaties, enz. Het is gebruikelijker om mm/dd/yyyy te gebruiken in de VS, terwijl dd/mm/yyyy komt vaker voor in het VK.

Python heeft strftime() en strptime() methoden om dit aan te pakken.


Python strftime() - datetime object naar string

De strftime() methode is gedefinieerd onder klassen date , datetime en time . De methode maakt een opgemaakte string van een gegeven date , datetime of time voorwerp.


Voorbeeld 15:Datum opmaken met strftime()


from datetime import datetime

# current date and time
now = datetime.now()

t = now.strftime("%H:%M:%S")
print("time:", t)

s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("s1:", s1)

s2 = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("s2:", s2)

Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:


time: 04:34:52
s1: 12/26/2018, 04:34:52
s2: 26/12/2018, 04:34:52

Hier, %Y , %m , %d , %H enz. zijn formaatcodes. De strftime() methode neemt een of meer opmaakcodes en retourneert een opgemaakte tekenreeks op basis daarvan.

In het bovenstaande programma, t , s1 en s2 zijn strings.

  • %Y - jaar [0001,..., 2018, 2019,..., 9999]
  • %m - maand [01, 02, ..., 11, 12]
  • %d - dag [01, 02, ..., 30, 31]
  • %H - uur [00, 01, ..., 22, 23
  • %M - minuut [00, 01, ..., 58, 59]
  • %S - tweede [00, 01, ..., 58, 59]

Voor meer informatie over strftime() en formatteer codes, bezoek:Python strftime().


Python strptime() - string tot datetime

De strptime() methode maakt een datetime object uit een gegeven string (die datum en tijd vertegenwoordigt).


Voorbeeld 16:strptime()


from datetime import datetime

date_string = "21 June, 2018"
print("date_string =", date_string)

date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)

Wanneer u het programma uitvoert, is de uitvoer:


date_string = 21 June, 2018
date_object = 2018-06-21 00:00:00

De strptime() methode heeft twee argumenten:

  1. een tekenreeks die datum en tijd vertegenwoordigt
  2. formaatcode gelijk aan het eerste argument

Trouwens, %d , %B en %Y formaatcodes worden gebruikt voor dag , maand (volledige naam) en jaar respectievelijk.

Bezoek Python strptime() voor meer informatie.


Omgaan met tijdzone in Python

Stel dat u aan een project werkt en datum en tijd moet weergeven op basis van hun tijdzone. In plaats van zelf met de tijdzone om te gaan, raden we je aan een pytZ-module van een derde partij te gebruiken.


from datetime import datetime
import pytz

local = datetime.now()
print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S"))


tz_NY = pytz.timezone('America/New_York') 
datetime_NY = datetime.now(tz_NY)
print("NY:", datetime_NY.strftime("%m/%d/%Y, %H:%M:%S"))

tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London:", datetime_London.strftime("%m/%d/%Y, %H:%M:%S"))

Wanneer u het programma uitvoert, zal de uitvoer zoiets zijn als:


Local time: 2018-12-20 13:10:44.260462
America/New_York time: 2018-12-20 13:10:44.260462
Europe/London time: 2018-12-20 13:10:44.260462	

Hier, datetime_NY en datetime_London zijn datetime-objecten die de huidige datum en tijd van hun respectieve tijdzone bevatten.


Python

  1. Python-gegevenstypen
  2. Python-operators
  3. Python pass-instructie
  4. Python-functieargumenten
  5. Python-woordenboek
  6. Python-iterators
  7. Python-sluitingen
  8. Hoe de huidige datum en tijd in Python te krijgen?
  9. Python Krijgen huidige tijd
  10. Python-slaap()
  11. Python - Overzicht