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)
Comments are closed