07.6. Date and Time (Tarih ve Saat)

Modern programlama dilleri tarih ve zaman işlemleri için birçok fonksiyon ve özellik sunar. Python, time ve calendar modülleri bu işlemlere yardımcı olur.

Zaman aralıkları, saniye cinsinden kayan nokta sayılarıdır. Birçok programlama dilinde ticks olarak ifade edilir. Python’da zaman işlemlerini yapmak ve farklı zaman gösterimleri arasında dönüştürme için işlevler sağlayan popüler bir time modülü vardır. Ticks değerleri 1970’ten başlar ve 2038’de biter. (Windows ve Linux için)

7.6.1. Time Tuple

Python, zaman işlem sonuçlarını 9 sayıdan oluşan bir tuple şeklinde tutar.

Indeks Alan Değer, değer aralığı
0 4-rakam 2018
1 Ay 1 – 12
2 Gün 1 – 31
3 Saat 0 – 23
4 Dakika 0 – 59
5 Saniye 0 – 61 (60 veya 61 – Sıçrama noktası)
6 d 0 – 6 (0: Pazartesi)
7 Yılın günü 1 – 366 (1: Ocak ilk gün)
8 Gün ışığından yararlanma -1, 0, 1, -1 değerlerinden birini alır

Bu tuple’yi struct veri tipine aşağıdaki alanlara sahiptir.

Indeks Özellik ismi Değer, değer aralığı
0 tm_year 2018
1 tm_mon 1 – 12
2 tm_mday 1 – 31
3 tm_hour 0 – 23
4 tm_min 0 – 59
5 tm_sec 0 – 61 (60 veya 61 – Sıçrama noktası)
6 tm_wday 0 – 6 (0: Pazartesi)
7 tm_yday 1 – 366 (1: Ocak ilk gün)
8 tm_isdst -1, 0, 1, -1 değerlerinden birini alır

Örneğin,

Bu struct yapıyı dönüştürme fonksiyonları kullanarak farklı formatlarda gösterebilirsiniz.

7.6.2. Calendar modülü

Calendar modülü, yıllık ve aylık takvimlerle göstermek için çok çeşitli yöntemler sunar.

7.6.3. Time modülü ait metotlar ve özellikler

Python zaman üzerinde çalışmak ve gösterim formatları arasında dönüştürme fonksiyonları için zaman modülünü kullanır.

Fonksiyon ismi Tanımı
time.altzone Günışıgından yararlanma süresi ofseti
time.asctime([tupletime]) Bir time tuple değeri alır, ‘Tue Dec 11 18:07:14 2008’ şeklinde 24 karakterlik bir katar şeklinde döndürür.
time.clock( ) Geçerli CPU zamanı kayan-noktalı sayı saniyesi olarak döndürür. time.time() fonksiyonuna göre daha kullanışlı bir fonksiyondur.
time.ctime([secs]) asctime(localtime(secs)) komutunun aynısıdır.
time.gmtime([secs]) Saniye cinsinden ifade edilen bir anı kabul eder ve UTC zamanı ile bir zaman-tuple döndürür.
time.localtime([secs]) Zamandan bu yana saniye cinsinden ifade edilen bir anı kabul eder ve yerel zamanla bir zaman-tuple döndürür.
time.mktime(tupletime) Yerel zamanda bir zaman-tuple olarak ifade edilen bir anı kabul eder ve çağdan bu yana saniye cinsinden ifade edilen anında bir kayan nokta değeri döndürür.
time.sleep(secs) Arama iş parçacığını saniye saniye askıya alır.
time.strftime(fmt[,tupletime]) Yerel saatte bir zaman-tuple olarak ifade edilen bir anı kabul eder ve katar fmt’si ile belirtilen anı temsil eden bir katar döndürür.
time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’) string bir değeri ayrıştırır ve zaman-tuple biçiminde döndürür.
time.time( ) Geçerli anı döndürür.
time.tzset() Kütüphane rutinleri tarafından kullanılan zaman dönüştürme kurallarını sıfırlar. Ortam değişkeni TZ bunun nasıl yapıldığını belirtir.

Time kütüphanesi iki önemli özellik içerir.

Özellik ismi Tanımı
time.timezone Attribute time.timezone UTC değerini döndürür. (>0 in the Americas; <=0 in most of Europe, Asia, Africa)
time.tzname Attribute time.tzname yerel zaman dilimini sırasıyla DST ile ve DST’siz olarak döndürür.

7.6.4. Calendar modülü ait metotlar ve özellikler

Calendar modülü, belirli bir ay veya yıl için bir metin takvimi basma işlevleri de dahil olmak üzere, takvimle ilgili işlevleri sağlar. Örneğin, varsayılan olarak, takvim haftanın ilk günü ve Pazar günü sonuncu gün olarak alınır. Bunu değiştirmek için calendar.setfirstweekday() işlevini çağrılır.

Calendar modülü ile kullanılabilen fonksiyonlar,

Fonksiyon Tanımı
calendar.calendar(year,w=2,l=1,c=6) Yıl yıl belli bir sayıda sütundan(c) ve 3 kolondan oluşan çok satırlı bir katar döndürür. Günler arasındaki genişlik w ve l her hafta için satır sayısı ayarlanır.
calendar.firstweekday( ) Geçerli haftanın ilk gününü döndürür. Bu değer Pazartesidir, ancak geçerli gün değeri değiştirilebilir.
calendar.isleap(year) Yıl bir atlama yılı ise True döndürür; Aksi halde, Yanlış.
calendar.leapdays(y1,y2) İki tarih arasındaki atlamalı gün sayısını döndürür.
calendar.month(year,month,w=2,l=1) Verilen yıl, ay, w ve l bilgilerine göre çok satırlı bir katar döndürür.
calendar.monthcalendar(year,month) Ints listelerinin bir listesini döndürür. Her alt liste bir hafta gösterir. Yılın ay ayı dışındaki günler 0’a ayarlanır; Ay içindeki günler, ayın 1’ine ve sonlarına göre ayarlanır.
calendar.monthrange(year,month) İki tam sayı döndürür. İlki, yıl içinde ayın ilk günü için hafta içi kodudur; İkincisi ise aydaki gün sayısıdır. Hafta içi kodlar 0 (Pazartesi) ila 6 (Pazar) arasındadır; Ay numaraları 1 ila 12’dir.
calendar.prcal(year,w=2,l=1,c=6) print(calendar.calendar(year,w,l,c)) işlevini yapar.
calendar.prmonth(year,month,w=2,l=1) print(calendar.month(year,month,w,l)) işlevini yapar.
calendar.setfirstweekday(weekday) Her haftanın ilk gününü hafta içi gün haftası koduna ayarlar. Hafta içi kodlar 0 (Pazartesi) ila 6 (Pazar) arasındadır.
calendar.timegm(tupletime) Time.gmtime’ın tersi: time-tuple formunda bir zaman anını kabul eder ve kayan nokta sayısı saniye olarak döndürür.
calendar.weekday(year,month,day) Verilen tarihin hafta içi kodunu döndürür. Hafta içi kodlar 0 (Pazartesi) ila 6 (Pazar) arasındadır; Ay numaraları 1 (Ocak) ila 12 (Aralık) arasındadır.