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:
Dyrektywa | Opis | Przykład |
---|---|---|
%a | Weekday, short version | Wed |
%A | Weekday, full version | Wednesday |
%w | Weekday as a number 0-6, 0 is Sunday | 3 |
%d | Day of month 01-31 | 31 |
%b | Month name, short version | Dec |
%B | Month name, full version | December |
%m | Month as a number 01-12 | 12 |
%y | Year, short version, without century | 18 |
%Y | Year, full version | 2018 |
%H | Hour 00-23 | 17 |
%I | Hour 00-12 | 05 |
%p | AM/PM | PM |
%M | Minute 00-59 | 41 |
%S | Second 00-59 | 08 |
%f | Microsecond 000000-999999 | 548513 |
%z | UTC offset | +0100 |
%Z | Timezone | CST |
%j | Day number of year 001-366 | 365 |
%U | Week number of year, Sunday as the first day of week, 00-53 | 52 |
%W | Week number of year, Monday as the first day of week, 00-53 | 52 |
%c | Local version of date and time | Mon Dec 31 17:41:00 2018 |
%C | Century | 20 |
%x | Local version of date | 12/31/18 |
%X | Local version of time | 17:41:00 |
%% | A % character | % |
%G | ISO 8601 year | 2018 |
%u | ISO 8601 weekday (1-7) | 1 |
%V | ISO 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)