Python - Tarih ve Saat
Bir Python programı, tarih ve saati birkaç şekilde işleyebilir. Tarih formatları arasında dönüşüm, bilgisayarlar için yaygın bir iştir. Python'un zaman ve takvim modülleri, tarihlerin ve saatlerin izlenmesine yardımcı olur.
Tick nedir?
Zaman aralıkları, saniye birimi cinsinden kayan nokta sayılarıdır. Zaman içindeki belirli anlar, 1 Ocak 1970 (epoch) 00:00:00 saatinden bu yana saniye cinsinden ifade edilir.
Popüler var timePython'da zamanlarla çalışma ve temsiller arasında dönüştürme için işlevler sağlayan modül. Fonksiyon time.time () 00:00:00 saat 1 Ocak, 1970 (Epoch) bu yana kene mevcut sistem saati döndürür.
Misal
#!/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
Bu, aşağıdaki gibi bir sonuç üretecektir -
Number of ticks since 12:00am, January 1, 1970: 7186862.73399
Tarih aritmetiğinin tiklerle yapılması kolaydır. Ancak çağdan önceki tarihler bu biçimde gösterilemez. Uzak gelecekteki tarihler de bu şekilde gösterilemez - sınır noktası UNIX ve Windows için bazen 2038'dedir.
TimeTuple nedir?
Python'un zaman işlevlerinin çoğu, aşağıda gösterildiği gibi zamanı 9 sayılık bir demet olarak ele alır -
Dizin | Alan | Değerler |
---|---|---|
0 | 4 basamaklı yıl | 2008 |
1 | Ay | 1 ila 12 |
2 | Gün | 1 - 31 |
3 | Saat | 0-23 |
4 | Dakika | 0 - 59 |
5 | İkinci | 0 - 61 (60 veya 61 artık saniyedir) |
6 | Haftanın günü | 0 - 6 (0 Pazartesi) |
7 | Yılın günü | 1 ila 366 (Jülyen günü) |
8 | Gün ışığından yararlanma | -1, 0, 1, -1, kitaplığın DST'yi belirlediği anlamına gelir |
Yukarıdaki tuple eşdeğerdir struct_timeyapı. Bu yapının aşağıdaki nitelikleri vardır -
Dizin | Öznitellikler | Değerler |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 ila 12 |
2 | tm_mday | 1 - 31 |
3 | tm_hour | 0-23 |
4 | tm_min | 0 - 59 |
5 | tm_sec | 0 - 61 (60 veya 61 artık saniyedir) |
6 | tm_wday | 0 - 6 (0 Pazartesi) |
7 | tm_yday | 1 ila 366 (Jülyen günü) |
8 | tm_isdst | -1, 0, 1, -1, kitaplığın DST'yi belirlediği anlamına gelir |
Geçerli zaman alınıyor
Epoch kayan nokta değerinden bu yana geçen bir anı bir saniyeden bir zaman dizisine çevirmek için, kayan nokta değerini bir işleve (örneğin yerel zaman), dokuz öğenin tümü geçerli olan bir zaman dizisini döndüren bir işleve geçirin.
#!/usr/bin/python
import time;
localtime = time.localtime(time.time())
print "Local current time :", localtime
Bu, başka herhangi bir prezentabl formda biçimlendirilebilen aşağıdaki sonucu üretecektir -
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)
Biçimlendirilmiş zaman alınıyor
Gereksiniminize göre istediğiniz zamanı biçimlendirebilirsiniz, ancak zamanı okunabilir biçimde elde etmenin basit yöntemi asctime () -
#!/usr/bin/python
import time;
localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime
Bu, aşağıdaki sonucu verecektir -
Local current time : Tue Jan 13 10:17:09 2009
Bir aylık takvim alma
Takvim modülü, yıllık ve aylık takvimlerle oynamak için çok çeşitli yöntemler sunar. Burada, belirli bir ay için bir takvim yazdırıyoruz (Ocak 2008) -
#!/usr/bin/python
import calendar
cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal
Bu, aşağıdaki sonucu verecektir -
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
zaman Modülü
Popüler var timePython'da zamanlarla çalışma ve gösterimler arasında dönüştürme için işlevler sağlayan modül. İşte mevcut tüm yöntemlerin listesi -
Sr.No. | Açıklamalı İşlev |
---|---|
1 | time.altzone Yerel DST saat diliminin, eğer tanımlanmışsa, UTC'nin batısına saniye cinsinden farkı. Yerel DST saat dilimi UTC'nin doğusundaysa (Birleşik Krallık dahil Batı Avrupa'da olduğu gibi) bu negatiftir. Bunu yalnızca gün ışığı sıfır değilse kullanın. |
2 | time.asctime ([tupletime]) Bir zaman demetini kabul eder ve 'Tue Dec 11 18:07:14 2008' gibi okunabilir 24 karakterlik bir dize döndürür. |
3 | zaman saati( ) Geçerli CPU zamanını kayan noktalı saniye sayısı olarak döndürür. Farklı yaklaşımların hesaplama maliyetlerini ölçmek için time.clock'un değeri, time.time () değerinden daha kullanışlıdır. |
4 | time.ctime ([saniye]) Asctime (localtime (secs)) gibi ve argümansız, asctime () gibidir |
5 | time.gmtime ([saniye]) Dönemden bu yana saniye cinsinden ifade edilen bir anı kabul eder ve UTC saatiyle bir t zaman-tuple döndürür. Not: t.tm_isdst her zaman 0'dır |
6 | time.localtime ([secs]) Dönemden bu yana saniye cinsinden ifade edilen bir anı kabul eder ve yerel saatle bir t zaman-demeti döndürür (t.tm_isdst, DST'nin yerel kurallar tarafından anlık saniye için geçerli olup olmamasına bağlı olarak 0 veya 1'dir). |
7 | time.mktime (tupletime) Yerel zamanda bir zaman dizisi olarak ifade edilen bir anı kabul eder ve çağdan bu yana saniye cinsinden ifade edilen an ile bir kayan nokta değeri döndürür. |
8 | time.sleep (saniye) Çağıran iş parçacığını saniyeler için askıya alır. |
9 | time.strftime (fmt [, tupletime]) Yerel zamanda bir zaman-demeti olarak ifade edilen bir anı kabul eder ve dize fmt ile belirtilen anı temsil eden bir dize döndürür. |
10 | time.strptime (str, fmt = '% a% b% d% H:% M:% S% Y') Str'yi fmt dizgesine göre ayrıştırır ve anı zaman-tuple biçiminde döndürür. |
11 | zaman zaman( ) Dönemden bu yana geçen saniye cinsinden kayan nokta sayısı olan geçerli zaman anını döndürür. |
12 | 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. |
İşlevleri kısaca gözden geçirelim -
Zaman modülüyle kullanılabilen aşağıdaki iki önemli özellik vardır:
Sr.No. | Açıklamalı Öznitelik |
---|---|
1 | time.timezone Attribute time.timezone, UTC'den (Amerika'da> 0; çoğu Avrupa, Asya ve Afrika'da <= 0) yerel saat diliminin saniye cinsinden farkıdır (DST olmadan). |
2 | time.tzname Öznitelik zaman.tzname, sırasıyla DST'siz ve DST ile yerel saat diliminin adları olan, yerel ayara bağlı dizeler çiftidir. |
takvim Modülü
Takvim modülü, belirli bir ay veya yıl için bir metin takvimi yazdırma işlevleri de dahil olmak üzere takvimle ilgili işlevleri sağlar.
Varsayılan olarak, takvim haftanın ilk günü olarak Pazartesi ve son gün olarak Pazar gününü alır. Bunu değiştirmek için calendar.setfirstweekday () işlevini çağırın.
İşte takvim modülüyle kullanılabilen işlevlerin bir listesi -
Sr.No. | Açıklamalı İşlev |
---|---|
1 | calendar.calendar(year,w=2,l=1,c=6) Yıl yılı takvimi c boşluklarla ayrılmış üç sütun halinde biçimlendirilmiş çok satırlı bir dize döndürür. w, her tarihin karakter cinsinden genişliğidir; her satırın uzunluğu 21 * w + 18 + 2 * c'dir. l, her hafta için satır sayısıdır. |
2 | calendar.firstweekday( ) Her hafta başlayan haftanın günü için geçerli ayarı döndürür. Varsayılan olarak, takvim ilk içe aktarıldığında bu 0'dır, yani Pazartesi'dir. |
3 | calendar.isleap(year) Yıl artık yılsa True döndürür; aksi takdirde, False. |
4 | calendar.leapdays(y1,y2) Yıllardaki artık günlerin toplam sayısını döndürür (y1, y2). |
5 | calendar.month(year,month,w=2,l=1) Yılın ayı için takvim içeren çok satırlı bir dize, haftada bir satır artı iki başlık satırı döndürür. w, her tarihin karakter cinsinden genişliğidir; her satırın uzunluğu 7 * w + 6'dır. l, her hafta için satır sayısıdır. |
6 | calendar.monthcalendar(year,month) İnts listelerinin bir listesini verir. Her alt liste bir haftayı ifade eder. Yılın ay ayı dışındaki günler 0 olarak ayarlanır; ay içindeki günler, ayın 1 ve üstü günlerine ayarlanır. |
7 | calendar.monthrange(year,month) İki tamsayı döndürür. İlki, yıl içinde ayın ilk günü için hafta içi gün kodudur; ikincisi, aydaki gün sayısıdır. Hafta içi kodları 0 (Pazartesi) ila 6 (Pazar) arasındadır; ay numaraları 1'den 12'ye kadardır. |
8 | calendar.prcal(year,w=2,l=1,c=6) Print calendar.calendar (year, w, l, c) gibi. |
9 | calendar.prmonth(year,month,w=2,l=1) Baskı takvimi gibi. Ay (yıl, ay, w, l). |
10 | calendar.setfirstweekday(weekday) Her haftanın ilk gününü hafta içi kodu hafta içi olarak ayarlar. Hafta içi kodları 0 (Pazartesi) ila 6 (Pazar) arasındadır. |
11 | calendar.timegm(tupletime) Time.gmtime'ın tersi: zaman-tuple biçiminde bir anı kabul eder ve çağdan bu yana kayan noktalı saniye sayısı ile aynı anı döndürür. |
12 | 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) ile 12 (Aralık) arasındadır. |
Diğer Modüller ve Fonksiyonlar
Eğer ilgileniyorsanız, burada Python'da tarih ve saatle oynayabileceğiniz diğer önemli modüllerin ve işlevlerin bir listesini bulacaksınız -
datetime Modülü
pytz Modülü
dateutil Modülü