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ü