Podstawową umiejętnością jest manipulowanie datą i czasem, dlatego też nie sposób pominąć tego zagadnienia. Omówione tutaj sposoby nie wyczerpują tematu, którego pełna dokumentacja znajduje się tutaj.

Najprościej rzecz ujmując podstawowym modułem jest biblioteka datetime. Posiada ona bogactwo metod oraz wartości podstawowych. Przeanalizujmy metodę pozwalającą na sprawdzenie aktualnego czasu systemowego w komputerze.

import datetime
import time
from datetime import date


print(f'Możliwy zakres dat to {date.min} ÷ {date.max}')
print(f'Data aktualna to systemowa: {date.today()}')
print(f'Aktualny rok: {date.today().year}, miesiąc: {date.today().month}, dzień: {date.today().day}')
print(f'Data aktualna to systemowa: {date.today().ctime()}')
print(f'Dostępne elementy daty to: {date.today().timetuple()}')

#data=date.ctime(data)
print(datetime.datetime.now())
print(datetime.datetime.now().__format__("%H:%M:%S"))
print(datetime.datetime.now().__format__("%Y-%m-%d %H:%M:%S"))
print(datetime.datetime.now().__format__("%S"))
print(time.time_ns())
print(time.time())

Powyższy kod jest jedynie przykładowymi realizacjami i na potrzeby programów możliwe, że trzeba zajrzeć do dokumentacji by znaleźć odpowiednią metodę. Poniżej lista dyrektyw formatujących:

DyrektywaOpisPrzykład
%aWeekday, short versionWed
%AWeekday, full versionWednesday
%wWeekday as a number 0-6, 0 is Sunday3
%dDay of month 01-3131
%bMonth name, short versionDec
%BMonth name, full versionDecember
%mMonth as a number 01-1212
%yYear, short version, without century18
%YYear, full version2018
%HHour 00-2317
%IHour 00-1205
%pAM/PMPM
%MMinute 00-5941
%SSecond 00-5908
%fMicrosecond 000000-999999548513
%zUTC offset+0100
%ZTimezoneCST
%jDay number of year 001-366365
%UWeek number of year, Sunday as the first day of week, 00-5352
%WWeek number of year, Monday as the first day of week, 00-5352
%cLocal version of date and timeMon Dec 31 17:41:00 2018
%CCentury20
%xLocal version of date12/31/18
%XLocal version of time17:41:00
%%A % character%
%GISO 8601 year2018
%uISO 8601 weekday (1-7)1
%VISO 8601 weeknumber (01-53)01

Przykładem użycia jest realizacja pauzy zatrzymującej działanie programu na określony czas:

t=time_ns()
print("Zaczynam pauzę 2s...")
while time_ns()<t+2000000000:
    pass
print("Koniec pauzy!")

#lub z wykorzystaniem funkcji potęgowania, by nie zgubić się w zerach...

t=time_ns()
print("Zaczynam pauzę 2s...")
while time_ns()<t+2*pow(10,9):
    pass
print("Koniec pauzy!")

Oczywistym jest, że przydałaby się dedykowana procedura wstrzymywania programu na określoną liczbę sekund… i taka jest zdefiniowana w klasie time, jej użycie wygląda tak jak poniżej:

print("time.sleep()")
time.sleep(5)
print("Koniec spania!")

Przydatne czasami jest utworzenie sformatowanego obiektu date zawierającego podane przez nas wartości:

x = datetime.datetime(2020, 5, 17, hour=17, minute=56, second=0, microsecond=0)
print(x)