Python - 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 00:00:00 1 stycznia 1970 (epoka).

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

Przykład

#!/usr/bin/python
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: 7186862.73399

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 2008
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

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

Indeks Atrybuty Wartości
0 tm_year 2008
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 krotkę czasu, przekaż wartość zmiennoprzecinkową do funkcji (np. Czasu lokalnego), która zwraca krotkę czasu z poprawnymi wszystkimi dziewięcioma elementami.

#!/usr/bin/python
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=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, 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/python
import time;

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

Dałoby to następujący wynik -

Local current time : Tue Jan 13 10:17:09 2009

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/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

Dałoby to następujący wynik -

Here is the calendar:
   January 2008
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 30 31

Czas Moduł

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. Funkcja z opisem
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 UTC (jak w Europie Zachodniej, w tym w Wielkiej Brytanii). Używaj tego tylko wtedy, gdy ś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 moment wyrażony 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 czasowa 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.

Przejdźmy pokrótce przez funkcje -

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

Sr.No. Atrybut z opisem
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.

Kalendarz Moduł

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ć, wywołaj funkcję calendar.setfirstweekday ().

Oto lista funkcji dostępnych w module kalendarza -

Sr.No. Funkcja z opisem
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 w każdym tygodniu.

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ą ustawione 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 -

  • Datetime moduł

  • Pytz Module

  • Dateutil Module