Python'da zaman modülü 3. Ana yöntemler, şablonlar, örnekler

Hemen hemen her program zaman kullanır. Python'da bunun için ayrı bir kütüphane geliştirildi - zamanonunla çeşitli eylemler gerçekleştirmek için kullanılır. Çalışması için önce kodun başında bildirilmesi gerekir. Bu satır bunun için kullanılır:

ithalat zamanı

Bu modülün pratikte nasıl doğru kullanılacağına dair farklı seçenekleri ele alalım. 

Çağdan bu yana geçen saniye sayısını belirleme

Bu görevi gerçekleştirmek için bir işlev var zaman() parametre almaz. Dönüş değeri, 1 Ocak 1970'den bu yana kaç saniye geçtiğini gösterir. Python'da bu zamana bir çağın başlangıcı denir. En azından Unix ailesinin işletim sistemlerinde.

Windows'a gelince, tarih aynıdır, ancak bu tarihten önceki negatif değerlerle ilgili sorunlar olabilir. 

Kullanılan saat dilimi UTC'dir.

ithalat zamanı

saniye = zaman.zaman()

print(“Çağdan bu yana geçen saniye =”, saniye)

Bu işlevin karmaşıklığı, tam olarak tarihi değil, yalnızca saniye sayısını göstermesidir. Herkesin aşina olduğu biçime dönüştürmek için doğru bilgileri kullanmanız gerekir. Bunun için fonksiyon kullanılır. zaman.ctime().

Tarihi, saati normal biçimde döndürme

Zamanı normal biçimde döndürmek için bir yöntem var zaman.ctime(). Köşeli parantezler, çağın başlangıcından bu yana geçen saniyelerin sayısını gösteren bir değişkeni veya bir sayıyı belirtir. Bu yöntem, tarih, yıl, saat, dakika, saniye ve haftanın günü de dahil olmak üzere tüm tarih ve saat özelliklerini döndürür.

Bu işlev, bağımsız değişkenler olmadan da kullanılabilir. Bu durumda, geçerli tarihi, saati vb. döndürür.

İşte bunu gösteren bir kod parçası.

ithalat zamanı

yazdır(zaman.ctime())

23 Ekim Salı 10:18:23 2018

Son satır, Python yorumlayıcısının çalıştığı konsola yazdırılan şeydir. Yöntem, alınan saniye sayısını otomatik olarak kullanıcının aşina olduğu bir forma biçimlendirir. Doğru, yukarıda açıklanan tüm unsurlar nadiren kullanılır. Kural olarak, yalnızca saati veya yalnızca bugünün tarihini almanız gerekir. Bunun için ayrı bir işlev kullanılır - strftime(). Ama düşünmeden önce, sınıfı ayrıştırmamız gerekiyor. zaman.struct_time.

sınıf zamanı.struct_time

Bu, çeşitli yöntemlerle kabul edilebilecek bir argüman kategorisidir. Herhangi bir seçeneği yok. Adlandırılmış bir arayüze sahip bir demetdir. Basitçe söylemek gerekirse, bu sınıfın öğelerine hem ad hem de dizin numarası ile erişilebilir.

Aşağıdaki niteliklerden oluşur.Python'da zaman modülü 3. Ana yöntemler, şablonlar, örnekler

Dikkat! Diğer birçok programlama dilinden farklı olarak, burada ay 1 ile 12 arasında olabilir, sıfırdan 11'e kadar değil.

Belirli Bir Format Döndürme

İşlevi kullanma strftime() yılı, ayı, günü, saati, dakikayı, saniyeyi ayrı ayrı alabilir ve bunları bir metin dizisine döndürebilirsiniz. Daha sonra işlevi kullanarak kullanıcıya yazdırılabilir. Yazdır () veya başka şekilde işlenir.

Argüman olarak, bir fonksiyon, bu modülün diğer fonksiyonları tarafından döndürülen bir değeri alan herhangi bir değişkeni alabilir. Örneğin, gerekli verileri çıkaracağı yerel saati (daha sonra tartışılacaktır) aktarabilirsiniz.

İşte yaptığımız kod parçası.

ithalat zamanı

name_tuple = time.localtime() # struct_time'ı al

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», name_tuple)

yazdır(zaman_dizisi)

Bu kodu çalıştırırsanız, geçerli tarih ve saat görüntülenecektir. Öğelerin biçimi ve sırası değiştirilebilir. Bunlar aşağıdaki gibidir:

  1. %Y yıldır.
  2. %m aydır.
  3. %d – gün.
  4. %H – zaman.
  5. %M – dakika.
  6. %S – saniye.

Buna göre, çıktının yalnızca ay ve güne ait olmasını sağlayabilirsiniz. Bunu yapmak için, yılı görüntülemek için bir komut vermeniz gerekmez. Yani, yukarıdaki formülü %m/%d argümanı olarak yazın ve hepsi bu kadar. Veya tam tersi, %d/%m. 

Aslında, dize değişmezlerinin sayısı çok daha fazladır. İşte ayrıntılı olarak açıklandığı bir tablo.Python'da zaman modülü 3. Ana yöntemler, şablonlar, örnekler

Bir ileti dizisini belirli bir süre için erteleyin

Bunun için fonksiyon kullanılır. uyumak (). Oldukça büyük bir programlama görevleri bloğu, zamanın geçişi ile ilişkilidir. Bazen bir sonraki adımı belirli bir süre ertelemeniz gerekir. Örneğin, işlenmesi belirli bir süre alan bir veritabanıyla etkileşim kurmanız gerekiyorsa.

Argüman olarak yöntem, algoritmadan sonraki adımı geciktirmek için saniye sayısını ifade eden bir değer kullanır.

Örneğin, bu snippet'te gecikme 10 saniyedir.

ithalat zamanı

duraklama = 10

print(«Program başladı…»)

time.sleep(duraklatma)

print(str(duraklat) + » saniye geçti.»)

Sonuç olarak şunu elde edeceğiz:

Program başladı…

10 saniye geçti.

Çıktıdan da görebileceğimiz gibi, program önce başladığını bildiriyor. Ve on saniye sonra bu zamanın geçtiğini yazdı.

İşlev, duraklamanın süresini milisaniye cinsinden belirtmenize olanak tanır. Bunu yapmak için, fonksiyon argümanının kesirli değerlerini kullanıyoruz. uyku. Örneğin, 0,1. Bu, gecikmenin 100 milisaniye olacağı anlamına gelir.

yerel saati al

localtime() işlevini kullanarak program, belirli bir zaman diliminde dönemin başlangıcından bu yana geçen saniye sayısını alır. 

Netlik için örnek bir kod verelim.

ithalat zamanı

sonuç = zaman.localtime(1575721830)

print(“sonuç:”, sonuç)

print(«nгод:», sonuç.tm_year)

print(«tm_saat:», sonuç.tm_saat)

Epoch'tan bu yana geçen saniye sayısına bağlı olarak UTC'de struct_time döndür

Bu görev, time.gmtime() kullanılarak gerçekleştirilir. yöntem. Örnek verirsek daha anlaşılır olacaktır.

ithalat zamanı

sonuç = zaman.gmtime(1575721830)

print(“sonuç:”, sonuç)

print(«nгод:», sonuç.tm_year)

print(«tm_saat:», sonuç.tm_saat)

Bu işlem sırasını açarsanız, saat, yıl ve saat dilimi ile ilgili bir dizi öğe görüntülenecektir.

Yerel saate otomatik dönüştürme ile dönemin başlangıcından bu yana geçen saniye sayısını döndür

Böyle bir görevle karşı karşıya kalırsanız, yöntem kullanılarak uygulanır. mktime(), Hangisi alır yapı_zamanı. Bundan sonra, işlevin ters eylemini gerçekleştirir. Yerel zaman(). Yani, yerel saat dilimine göre zamanı, zaman dilimine göre ayarlanmış, çağın başlangıcından bu yana geçen saniye sayısına dönüştürür.

mktime() ve localtime() işlevleri yakından iç içedir. Bu kod parçası bunu açıkça göstermektedir. Nasıl çalıştığını daha derinlemesine anlamak için ona bir göz atalım. 

ithalat zamanı

saniye = 1575721830

# struct_time değerini döndürür

t = zaman.yerelzaman(saniye)

yazdır(«t1: «, t)

# struct_time'dan saniye döndürür

s = zaman.mkzaman(t)

print(«ns:», saniye)

değişken olduğunu görüyoruz. saniye Çağdan bu yana 1575721830 saniye atanmıştır. İlk olarak, program bu değere dayalı olarak kesin tarih, saat ve diğer parametreleri alır, onu bir değişkene koyar. tve ardından içeriğini bir değişkene dönüştürür s.

Bundan sonra yeni bir satır atar ve konsolda saniye sayısını görüntüler. Saniye değişkenine atanan sayının aynı olup olmadığını kontrol edebilirsiniz.

struct_time'a başvuran 9 sayıdan çıkış tarihi

Diyelim ki yılı, ayı, tarihi, haftanın gününü ve bir dizi başka değeri temsil eden 9 numaramız olduğunu ve bunları tek bir dizgede birleştirmemiz gerektiğini varsayalım. Bunun için fonksiyon kullanılır. artış zamanı(). Kabul eder veya hazır yapı_zamanı, veya aynı anlamına gelen 9 değerden oluşan herhangi bir demet. Bundan sonra, tarih, saat ve bir dizi başka parametre olan bir dize döndürülür. 

Farklı kullanıcı tanımlı verileri tek bir değişkene getirmek için bu yöntemi kullanmak çok uygundur..

Örneğin, kullanıcının gün, ay, yıl, haftanın günü ve bir etkinliğe kayıtla ilgili diğer verileri ayrı ayrı belirttiği bir program olabilir. Bundan sonra, alınan bilgiler veri tabanına girilir ve daha sonra talep eden başka bir kişiye verilir.

Python dizesine göre saat ve tarih alma

Kullanıcının farklı verileri belirttiğini ve bunları kişinin girdiği biçimde tek bir satırda birleştirmemiz ve ardından başka bir değişkene kopyalayıp orada standart bir biçimde yeniden oluşturmamız gerektiğini varsayalım. Bunun için fonksiyon kullanılır. zaman.strptime().

Bu değerin belirtildiği bir değişken alır ve bize zaten tanıdık olanı döndürür. yapı_zamanı.

Açıklık için böyle bir program yazacağız.

ithalat zamanı

time_string = «15 Haziran, 2019»

sonuç = time.strptime(time_string, «%d %B, %Y»)

yazdır(sonuç)

Bakalım çıktı ne olacak? En alt satıra bakmadan tahmin etmeye çalışın. Ve sonra cevabı kontrol edin.

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)

Kısacası Python'da tarih ve saatlerle çalışmak hiç de zor değil. Bu talimatları takip etmek yeterlidir ve her şey yoluna girecek. Kitaplığı Kullanma zaman kullanıcı zamanla çalışmak için çok sayıda fırsat elde eder, örneğin:

  1. Program yürütmesini belirli bir süre için askıya alın.
  2. Çağdan bu yana geçen zamanı saniye cinsinden göster. Bu bilgi, zamanı toplamak veya üzerinde başka matematiksel işlemler yapmak için kullanılabilir.
  3. Uygun bir formata dönüştürün. Ayrıca, programcı hangi öğelerin hangi sırayla görüntüleneceğini kendisi ayarlayabilir. 

Bir dizi başka olasılık da var, ancak bugün en temel olanları analiz ettik. Zamanla bir şekilde çalışan hemen hemen her programda kullanışlı olacaklar. İyi şanlar.

Yorum bırak