Datetime Modülü Nedir? Python ile Tarih ve Zaman İşlemleri Nasıl Yapılır?
Python datetime modülü, Python programlama dilinde tarih ve saat verilerini oluşturmak, düzenlemek, biçimlendirmek ve matematiksel hesaplamalar yapmak için kullanılan yerleşik (dahili) bir standart kütüphanedir. Yazılım projelerinde kullanıcıların kayıt zamanlarını saklamak, son teslim tarihlerini hesaplamak, log kayıtlarını zaman damgasıyla tutmak ve zamanlanmış görevleri yönetmek için tarih ve zaman işlemleri hayati bir öneme sahiptir. Herhangi bir harici kütüphane kurulumuna ihtiyaç duymadan doğrudan projenize dâhil edebileceğiniz bu modül, karmaşık takvim hesaplamalarını birkaç satır kodla çözmenize olanak tanır.
- Datetime modülünün temel sınıflarını (date, time, datetime, timedelta) ve kullanım amaçlarını,
- Sistemden anlık tarih ve saat bilgisini çekmeyi,
- Tarihler arasında toplama ve çıkarma gibi matematiksel zaman işlemlerini (timedelta),
- Tarih verilerini metne dönüştürmeyi (strftime) ve metinleri tarih nesnesine çevirmeyi (strptime),
- Unix Timestamp (zaman damgası) ile Python tarih nesneleri arasındaki dönüşüm yöntemlerini öğreneceksiniz.
- Dahili Kütüphane: Datetime modülü Python ile varsayılan olarak gelir;
import datetimekomutuyla hemen kullanılır. - Temel Sınıf Ayrımı: Sadece tarih için
date, sadece saat içintime, her ikisi içindatetimesınıfı tercih edilir. - Zaman Farkı Hesaplama: İki tarih arasındaki farkı bulmak veya bir tarihe gün eklemek için
timedeltanesnesinden yararlanılır. - Format Dönüşümleri: Tarihi istediğiniz dize (string) formatında göstermek için
strftime(), dizeden tarih üretmek içinstrptime()fonksiyonu kullanılır.
Datetime Modülü Nedir ve Neden Kullanılır?
Bilgisayar sistemlerinde tarih ve zaman verileri, sıradan metinler (string) gibi işlenemez. Örneğin “2026-03-30” metninden “2026-02-15” metnini çıkardığınızda matematiksel olarak kalan gün sayısını elde edemezsiniz. Yılın artık yıl olması veya ayların 28, 30 ya da 31 gün çekmesi gibi takvim kurallarının kod tarafında hesaplanması gerekir. İşte Python datetime modülü, tüm bu takvim karmaşasını arka planda otomatik olarak yöneten nesne tabanlı bir yapıdır.
Yazılım geliştirmede tarih işlemleri pek çok senaryoda karşımıza çıkar. Bir e-ticaret sitesinde siparişin kargoya verileceği tarihi belirlerken, bir mobil uygulamada kullanıcının yaşını hesaplarken ya da bir veritabanı sorgusunda son 7 güne ait kayıtları filtrelerken datetime modülünden faydalanırız. Python’ın sunduğu bu esnek araç sayesinde tarih verileri üzerinde sıralama, karşılaştırma ve aritmetik işlemler sorunsuz bir şekilde gerçekleştirilir. Konuyu farklı bir perspektiften incelemek isterseniz Zaman ve Tarih İşlemleri: Python Datetime Modülü Rehberi başlıklı yazımızdan da faydalanabilirsiniz.
import datetime yazmanız gerekir. Belirli bir sınıfı doğrudan çağırıp kullanmak isterseniz from datetime import datetime, timedelta şeklinde de içe aktarabilirsiniz.Datetime Modülünün Temel Sınıfları
Datetime kütüphanesi, farklı zaman ihtiyaçlarına yönelik hazırlanmış birkaç ana sınıftan oluşur. Her sınıfın kendine özgü bir sorumluluk alanı vardır. Kod yazarken ihtiyacınıza uygun sınıfı seçmek hem bellek kullanımını optimize eder hem de kodun okunabilirliğini artırır.
| Sınıf Adı | İçerdiği Bilgiler | Örnek Kullanım Amacı |
|---|---|---|
datetime.date | Yıl, Ay, Gün | Doğum günü, resmi tatil günleri, sadece gün odaklı kayıtlar. |
datetime.time | Saat, Dakika, Saniye, Mikrosaniye | Günlük alarm saatleri, mesai başlangıç zamanları. |
datetime.datetime | Yıl, Ay, Gün, Saat, Dakika, Saniye, Mikrosaniye | Sistem logları, randevu zamanları, hassas zaman kaydı. |
datetime.timedelta | İki zaman arasındaki fark (Gün, Saniye, Mikrosaniye) | Teslimat süresi hesaplama, geri sayım sayacı yapma. |
datetime.timezone | Saat dilimi bilgisi (UTC offset) | Uluslararası sistemlerde saat farkı yönetimi. |
Yukarıdaki tabloda görüldüğü gibi, uygulamanızın hassasiyetine göre doğru sınıfı tercih etmelisiniz. Yalnızca doğum günü saklayacaksanız saat bilgisine ihtiyaç duymayan date sınıfı yeterli olurken, bir kullanıcının sisteme tam olarak ne zaman giriş yaptığını kaydetmek için datetime sınıfı kullanılır. Benzer bir modül mantığının nasıl çalıştığını Matematiksel İşlemler: Python Math Modülü Formülleri makalemiz üzerinden de inceleyebilirsiniz.
Şu Anki Tarih ve Saati Alma: now() ve today()
Python’da o anki sistem tarihini ve saatini öğrenmek oldukça basittir. Bunun için en sık kullanılan iki yöntem datetime.now() ve datetime.today() fonksiyonlarıdır. Her iki fonksiyon da çalıştırıldığı andaki bilgisayar saatini milisaniye hassasiyetinde bir datetime nesnesi olarak döndürür.
Aşağıdaki kod örneği, sistemin anlık tarih ve saat verisini ekrana nasıl yazdıracağınızı gösterir:
import datetime
# Şu anki tarih ve saati alalım
su_an = datetime.datetime.now()
print("Şu anki tarih ve saat:", su_an)Bu kod çalıştırıldığında; sistemin o anki yıl, ay, gün, saat, dakika, saniye ve mikrosaniye bilgilerini içeren bir çıktı elde edilir. Benzer şekilde sadece tarih bilgisini almak istediğinizde datetime.date.today() yönteminden yararlanabilirsiniz.
Özetle Python’ın datetime modülü, projelerinizde zaman damgalı (timestamp) kayıtlar tutmanızı, tarihler arası farkları hesaplamanızı (timedelta) ve metin formatındaki zaman verilerini kolayca işleyebilmenizi sağlar.
Sıkça Sorulan Sorular
- Python Official Documentation – datetime Module — Python standart kütüphanesindeki datetime modülünün resmi dokümantasyonu, sınıf yapıları ve metot kullanımları.
