Python 3 - Data i czas

Program w Pythonie może obsługiwać datę i godzinę na kilka sposobów. Konwertowanie między formatami daty jest częstym obowiązkiem komputerów. Moduły czasu i kalendarza w Pythonie ułatwiają śledzenie dat i godzin.

Co to jest Tick?

Przedziały czasu to liczby zmiennoprzecinkowe w jednostkach sekund. Poszczególne momenty w czasie są wyrażane w sekundach od godziny 12:00 1 stycznia 1970 roku (epoka).

Jest popularny timemoduł dostępny w Pythonie, który udostępnia funkcje do pracy z czasami i do konwersji między reprezentacjami. Funkcjatime.time() zwraca bieżący czas systemowy w taktach od godziny 00:00 1 stycznia 1970 roku (epoka).

Przykład

#!/usr/bin/python3
import time;      # This is required to include time module.

ticks = time.time()
print ("Number of ticks since 12:00am, January 1, 1970:", ticks)

Dałoby to następujący wynik -

Number of ticks since 12:00am, January 1, 1970: 1455508609.34375

Arytmetyka dat jest łatwa do wykonania przy pomocy tików. Jednak dat sprzed epoki nie można przedstawić w tej formie. Daty w odległej przyszłości również nie mogą być przedstawiane w ten sposób - punkt odcięcia przypada w 2038 roku dla systemów UNIX i Windows.

Co to jest TimeTuple?

Wiele funkcji czasu w Pythonie traktuje czas jako krotkę 9 liczb, jak pokazano poniżej -

Indeks Pole Wartości
0 4-cyfrowy rok 2016
1 Miesiąc Od 1 do 12
2 Dzień Od 1 do 31
3 Godzina Od 0 do 23
4 Minuta Od 0 do 59
5 druga 0 do 61 (60 lub 61 to sekundy przestępne)
6 Dzień tygodnia 0 do 6 (0 to poniedziałek)
7 Dzień roku 1 do 366 (dzień juliański)
8 Czas letni -1, 0, 1, -1 oznacza, że ​​biblioteka określa czas letni

Na przykład -

import time

print (time.localtime());

Dałoby to następujący wynik -

time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9, 
   tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

Powyższa krotka jest równoważna struct_timeStruktura. Ta struktura ma następujące atrybuty -

Indeks Atrybuty Wartości
0 tm_year 2016
1 tm_mon Od 1 do 12
2 tm_mday Od 1 do 31
3 tm_hour Od 0 do 23
4 tm_min Od 0 do 59
5 tm_sec 0 do 61 (60 lub 61 to sekundy przestępne)
6 tm_wday 0 do 6 (0 to poniedziałek)
7 tm_yday 1 do 366 (dzień juliański)
8 tm_isdst -1, 0, 1, -1 oznacza, że ​​biblioteka określa czas letni

Pobieram aktualny czas

Aby przetłumaczyć moment czasowy z sekund od wartości zmiennoprzecinkowej epoki na harmonogram, należy przekazać wartość zmiennoprzecinkową do funkcji (np. Czasu lokalnego), która zwraca krotkę czasu ze wszystkimi prawidłowymi dziewięcioma elementami.

#!/usr/bin/python3
import time

localtime = time.localtime(time.time())
print ("Local current time :", localtime)

Dałoby to następujący wynik, który można sformatować w dowolnej innej możliwej do zaprezentowania formie -

Local current time : time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, 
   tm_hour = 9, tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

Uzyskiwanie sformatowanego czasu

Możesz formatować w dowolnym momencie zgodnie z wymaganiami, ale prostą metodą uzyskania czasu w czytelnym formacie jest asctime() -

#!/usr/bin/python3
import time

localtime = time.asctime( time.localtime(time.time()) )
print ("Local current time :", localtime)

Dałoby to następujący wynik -

Local current time : Mon Feb 15 09:34:03 2016

Otrzymuję kalendarz na miesiąc

Moduł kalendarza oferuje szeroki wachlarz metod gry z kalendarzami rocznymi i miesięcznymi. Tutaj drukujemy kalendarz na dany miesiąc (styczeń 2008) -

#!/usr/bin/python3
import calendar

cal = calendar.month(2016, 2)
print ("Here is the calendar:")
print (cal)

Dałoby to następujący wynik -

Here is the calendar:
   February 2016
Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29

Moduł czasu

Jest popularny timemoduł dostępny w Pythonie, który udostępnia funkcje do pracy z czasami i do konwersji między reprezentacjami. Oto lista wszystkich dostępnych metod.

Sr.No. Opis funkcji
1 time.altzone

Przesunięcie lokalnej strefy czasowej DST, w sekundach na zachód od czasu UTC, jeśli takie zostało zdefiniowane. Jest to wartość ujemna, jeśli lokalna strefa czasowa DST znajduje się na wschód od czasu UTC (jak w Europie Zachodniej, w tym w Wielkiej Brytanii). Użyj tego, jeśli światło dzienne jest niezerowe.

2 time.asctime ([tupletime])

Akceptuje krotkę czasu i zwraca czytelny 24-znakowy ciąg, na przykład „Tue Dec 11 18:07:14 2008”.

3 zegar( )

Zwraca bieżący czas procesora jako zmiennoprzecinkową liczbę sekund. Aby zmierzyć koszty obliczeniowe różnych podejść, wartość time.clock jest bardziej użyteczna niż wartość time.time ().

4 time.ctime ([sek.])

Jak asctime (localtime (secs)) i bez argumentów jest jak asctime ()

5 time.gmtime ([sek.])

Akceptuje moment wyrażony w sekundach od epoki i zwraca krotkę czasu t z czasem UTC. Uwaga - t.tm_isdst ma zawsze wartość 0

6 time.localtime ([sek.])

Akceptuje chwilę wyrażoną w sekundach od epoki i zwraca krotkę czasu t z czasem lokalnym (t.tm_isdst wynosi 0 lub 1, w zależności od tego, czy czas letni ma zastosowanie do chwilowych sekund według reguł lokalnych).

7 time.mktime (tupletime)

Akceptuje moment wyrażony jako krotka czasowa w czasie lokalnym i zwraca wartość zmiennoprzecinkową z chwilą wyrażoną w sekundach od epoki.

8 time.sleep (sek.)

Zawiesza wątek wywołujący na sekundę.

9 time.strftime (fmt [, tupletime])

Akceptuje moment obrotowy wyrażony jako krotka czasu w czasie lokalnym i zwraca ciąg znaków reprezentujący chwilę określoną przez string fmt.

10 time.strptime (str, fmt = '% a% b% d% H:% M:% S% Y')

Analizuje str zgodnie z ciągiem formatu fmt i zwraca moment w formacie krotki czasu.

11 czas czas( )

Zwraca bieżącą chwilę czasu, zmiennoprzecinkową liczbę sekund od epoki.

12 time.tzset ()

Resetuje reguły konwersji czasu używane przez procedury biblioteczne. Zmienna środowiskowa TZ określa, jak to się robi.

W module czasu dostępne są dwa ważne atrybuty. Oni są -

Sr.No. Atrybut i opis
1

time.timezone

Atrybut time.timezone to przesunięcie w sekundach lokalnej strefy czasowej (bez czasu letniego) od czasu UTC (> 0 w obu Amerykach; <= 0 w większości krajów Europy, Azji i Afryki).

2

time.tzname

Atrybut time.tzname to para ciągów zależnych od ustawień regionalnych, które są nazwami lokalnej strefy czasowej, odpowiednio, bez i z czasem letnim.

Moduł kalendarza

Moduł kalendarza udostępnia funkcje związane z kalendarzem, w tym funkcje drukowania kalendarza tekstowego na dany miesiąc lub rok.

Domyślnie kalendarz przyjmuje poniedziałek jako pierwszy dzień tygodnia, a niedzielę jako ostatni. Aby to zmienić, zadzwoń docalendar.setfirstweekday() funkcjonować.

Oto lista funkcji dostępnych z calendar moduł -

Sr.No. Opis funkcji
1

calendar.calendar(year,w = 2,l = 1,c = 6)

Zwraca wielowierszowy ciąg z kalendarzem na rok sformatowany w trzech kolumnach oddzielonych spacjami. w jest szerokością w znakach każdej daty; każda linia ma długość 21 * w + 18 + 2 * c. l to liczba wierszy na każdy tydzień.

2

calendar.firstweekday( )

Zwraca bieżące ustawienie dla dnia tygodnia rozpoczynającego się każdego tygodnia. Domyślnie, gdy kalendarz jest importowany po raz pierwszy, jest to 0, co oznacza poniedziałek.

3

calendar.isleap(year)

Zwraca wartość Prawda, jeśli rok jest rokiem przestępnym; w przeciwnym razie False.

4

calendar.leapdays(y1,y2)

Zwraca całkowitą liczbę dni przestępnych w latach w zakresie (y1, y2).

5

calendar.month(year,month,w = 2,l = 1)

Zwraca wielowierszowy ciąg z kalendarzem na miesiąc miesiąc rok rok, jeden wiersz na tydzień plus dwa wiersze nagłówka. w jest szerokością w znakach każdej daty; każda linia ma długość 7 * w + 6. l to liczba wierszy na każdy tydzień.

6

calendar.monthcalendar(year,month)

Zwraca listę list int. Każda podlista oznacza tydzień. Dni poza miesiącem rokiem są ustawiane na 0; dni w miesiącu są ustawiane na dzień miesiąca, 1 i nowsze.

7

calendar.monthrange(year,month)

Zwraca dwie liczby całkowite. Pierwsza z nich to kod dnia tygodnia pierwszego dnia miesiąca miesiąc w roku; druga to liczba dni w miesiącu. Kody dni tygodnia to 0 (poniedziałek) do 6 (niedziela); numery miesięcy to od 1 do 12.

8

calendar.prcal(year,w = 2,l = 1,c = 6)

Podobnie jak drukowanie kalendarza. Kalendarz (rok, w, l, c).

9

calendar.prmonth(year,month,w = 2,l = 1)

Podobnie jak drukowanie kalendarza. Miesiąc (rok, miesiąc, w, l).

10

calendar.setfirstweekday(weekday)

Ustawia pierwszy dzień każdego tygodnia na kod dnia tygodnia. Kody dni tygodnia to 0 (poniedziałek) do 6 (niedziela).

11

calendar.timegm(tupletime)

Odwrotność time.gmtime: akceptuje moment czasowy w postaci krotki czasowej i zwraca ten sam moment, co zmiennoprzecinkowa liczba sekund od epoki.

12

calendar.weekday(year,month,day)

Zwraca kod dnia tygodnia dla podanej daty. Kody dni tygodnia to 0 (poniedziałek) do 6 (niedziela); Numery miesięcy to od 1 (styczeń) do 12 (grudzień).

Inne moduły i funkcje

Jeśli jesteś zainteresowany, tutaj znajdziesz listę innych ważnych modułów i funkcji do zabawy z datą i godziną w Pythonie -

  • Moduł datetime
  • Moduł pytz
  • Moduł dateutil