Python TarihSaat, SaatDelta, Strftime(Format) Örneklerle
Datetime sınıfları Python 5 ana sınıfa ayrılmıştır.
- tarih – Sadece tarihi değiştir (Ay, gün, yıl)
- time – Günden bağımsız zaman (Saat, dakika, saniye, mikrosaniye)
- datetime – Saat ve tarihin birleşimi (Ay, gün, yıl, saat, saniye, mikrosaniye)
- timedelta— Tarihleri düzenlemek için kullanılan bir zaman aralığı
- tzinfo — Zaman dilimleriyle ilgilenmek için soyut bir sınıf
Date & DateTime Sınıfı Nasıl Kullanılır?
1. Adım) Tarihsaat biçimi kodunu çalıştırmadan önce Python, içe aktarmanız önemlidir Python aşağıdaki ekran görüntüsünde gösterildiği gibi tarih saat modülleri.
Bu içe aktarma ifadeleri, önceden tanımlanmış işlevsellik parçalarıdır. Python Herhangi bir kod yazmadan tarihleri ve saatleri değiştirmenizi sağlayan kütüphane.
Uygulamaya başlamadan önce aşağıdaki noktaları göz önünde bulundurun: Python tarihsaat biçimi kodu
from datetime import date
Bu satır şunu söyler Python tarih sınıfını datetime modülünden içe aktarmak için tercüman Python. Bu tarih işlevinin kodunu yazmıyoruz, ne yazık ki sadece kendi kullanımımız için içe aktarıyoruz
2. Adım) Daha sonra tarih nesnesinin bir örneğini oluşturuyoruz.
3. Adım) Daha sonra tarihi yazdırıp kodu çalıştırıyoruz.
Çıktı beklendiği gibi.
Date.today() işlevini kullanarak Tarihi Yazdır
date.today
fonksiyonun kendisiyle ilişkili çeşitli özellikleri vardır. Bireysel gün/ay/yıl ve diğer birçok şeyi yazdırabiliriz
Bir örnek görelim
Bugünün Hafta İçi Sayısı
Date.today() işlevi ayrıca haftanın günü numarasını da verir. İşte ile başlayan Hafta İçi Tablosu Monday 0 ve Pazar 6 gibi
Gün | HaftanınGün Sayısı |
---|---|
Monday | 0 |
Salı | 1 |
Çarşamba | 2 |
Perşembe | 3 |
Cuma | 4 |
Cumartesi | 5 |
Pazar | 6 |
Hafta İçi Sayısı, dizini haftanın gününe bağlı olan diziler için kullanışlıdır.
Python Geçerli Tarih ve Saat: şimdi() bugün()
) 1 Adım Tarih Nesneleri gibi şunu da kullanabiliriz: “TARİH SAAT NESNELERİ” in Python. Python tarih ve saat nesneleri, saatin yanı sıra tarihi de verir saat, dakika, saniye ve milisaniye.
Datetime kodunu çalıştırdığımızda güncel tarih ve saati içeren çıktıyı verir.
) 2 Adım “DATETIME OBJECT” ile zaman sınıfını da çağırabilirsiniz.
Tarih olmadan yalnızca geçerli saati yazdırmak istediğimizi varsayalım.
t = datetime.time(datetime.now())
- Zaman sınıfını içe aktarmıştık. Datetime.now() işlevini kullanarak ona zamanın geçerli değerini atayacağız.
- Şimdiki zamanın değerini t değişkenine atadık.
Ve bu bana tam zamanı verecek. O halde bu programı çalıştıralım.
Tamam, burada tarih ve saati aldığımı görebilirsiniz. Ve sonraki satırda, sadece zamanım var
) 3 Adım Bugünün hangi gün olduğunu öğrenmek için hafta içi indeksleyicimizi hafta içi dizi listemize uygulayacağız.
- Hafta içi operatörüne (wd), mevcut hafta içi günün ne olduğuna bağlı olarak (0-6) arasında bir numara atanır. Burada günlerin listesinin dizisini açıkladık (Pzt, Salı, Çarşamba…Paz).
- Hangi gün olduğunu öğrenmek için bu indeks değerini kullanın. Bizim durumumuzda bu #2'dir ve Çarşamba'yı temsil eder, dolayısıyla çıktıda "Çarşamba olan" yazacaktır.
Şimdi datetime kullanarak geçerli tarih ve saati almak için kodun tamamı burada
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Strftime() ile Tarih ve Saat Çıkışını Formatlama
Şu an itibariyle datetime ve date'in nasıl kullanılacağını öğrendik. nesne Python. Bir adım daha ileri giderek Saat ve Tarihi biçimlendirmek için biçimlendirme işlevinin nasıl kullanılacağını öğreneceğiz.
) 1 Adım Öncelikle yılın nasıl formatlanacağına dair basit bir adım göreceğiz. Bir örnekle anlamak daha iyidir.
- " ifadesini kullandık.strftime işlevi” biçimlendirme için.
- Bu işlev farklı kullanır kontrol kodu bir çıktı vermek için.
- Her kontrol kodu yıl, ay, haftanın günü ve tarih gibi farklı parametrelere benzer [(%y/%Y – Yıl), (%a/%A- hafta içi), (%b/%B- ay), (%d – ayın günü)] .
- Bizim durumumuzda bu (“%Y”) yıla benzeyen, tam yılı yüzyılla birlikte yazdırır (örneğin, 2018).
) 2 Adım Şimdi ("%Y") küçük harfle ( "%y) değiştirirseniz ve kodu çalıştırırsanız, çıktı yalnızca (18)'i görüntüleyecektir, (2018)'i görüntülemeyecektir. Yılın yüzyılı aşağıdaki ekran görüntüsünde gösterildiği gibi görüntülenmeyecek
) 3 Adım Strf fonksiyonu tarih, gün, ay ve yılı ayrı ayrı bildirebilir. Ayrıca strftime fonksiyonundaki kontrol kodundaki küçük değişikliklerle metnin stilini biçimlendirebilirsiniz.
strftime fonksiyonu içinde, eğer (%a)'yı büyük A ile değiştirirseniz, yani (%A), çıktı sadece "Cum" kısaltması yerine "Firday" olarak yazdırılacaktır.
) 4 Adım “Strftime” fonksiyonu yardımıyla yerel sistem saatini, tarihini veya her ikisini de alabiliriz.
- %C- yerel tarih ve saati gösterir
- %x- yerel tarihi gösterir
- %X- yerel saati gösterir
Çıktıda sonucu beklendiği gibi görebilirsiniz.
) 5 Adım “Strftime işlevi”, saati 24 saat veya 12 saat olarak herhangi bir formatta aramanıza olanak tanır.
Sadece saat için %I/H, dakika için % M, saniye için %S gibi kontrol kodunu tanımlayarak, farklı formatlar için zaman çağrılabilir.
12 saat zaman bildirildi [print now.strftime(“%I:%M:%S %p) ]
24 saat zaman bildirildi [print now.strftime(“%H:%M”)]
Datetime'ı String nesnesine dönüştürmek için gereken kodun tamamı buradadır.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Timedelta nedir? Python?
Zaman deltası Python süreyi temsil eden bir nesnedir. Genellikle iki tarih ve saat arasındaki süreyi hesaplamak için kullanılır. Ayrıca nesneyi bazı delta tarih ve saatleriyle almak için de kullanılır. timedelta nesnesi toplama, çıkarma, çarpma, bölme vb. gibi matematiksel işlemleri destekler.
Timedelta Nesneleri nasıl kullanılır
İle Python timedelta nesneleri ile hem gelecek hem de geçmiş için zamanı tahmin edebilirsiniz. Başka bir deyişle herhangi bir özel günü, tarihi veya saati tahmin etmek için kullanılan bir zaman aralığıdır.
Bu işlevin saati veya tarihi yazdırmak için olmadığını, gelecek veya geçmiş hakkında HESAPLANACAK bir şey olduğunu unutmayın.. hadi görelim Python Daha iyi anlamak için timedelta örneğine bakalım.
) 1 Adım Timedelta Nesnelerini çalıştırmak için önce import ifadesini bildirmeniz ve ardından kodu yürütmeniz gerekir
- timedelta için içe aktarma ifadesi yazın
- Şimdi ekran görüntüsünde gösterildiği gibi zaman deltasından nesneyi yazdırmak için kodu yazın
- Kodu çalıştırın. Timedelta 365 gün, 8 saat ve 15 dakikalık bir süreyi temsil eder ve aynı sonucu yazdırır
Kafa karıştırıcı? Bir sonraki adım yardımcı olacaktır-
) 2 Adım İthalat bildirimimizin iyi çalışıp çalışmadığını kontrol etmek için bugünün tarih ve saatini alalım. Kod çalıştırıldığında bugünün tarihini yazdırır, bu da ithalat bildirimimizin iyi çalıştığı anlamına gelir
) 3 Adım Delta nesneleri aracılığıyla bir yıl sonrasının tarihini nasıl alabileceğimizi göreceğiz. Kodu çalıştırdığımızda, beklendiği gibi çıktı verir.
) 4 Adım Zaman deltasının, geçerli tarih ve saatten gelecekteki tarihi hesaplamak için nasıl kullanılabileceğine dair başka bir örnek
) 5 Adım Daha karmaşık bir örneğe bakalım. Yeni Yıl'dan kaç gün geçtiğini belirlemek istiyorum. İşte nasıl ilerleyeceğimizi
- Today= date.today() kullanarak bugünün tarihini alırız
- Yeni yılın her zaman 1 Ocak'ta olduğunu biliyoruz, ancak yıl farklı olabilir. Nyd= date(today.year,1,1) kullanarak yeni yılı nyd değişkeninde saklıyoruz
- nyd < bugün ise: geçerli tarihin yeni yıldan büyük olup olmadığını karşılaştırır. Eğer büyükse, while döngüsüne girer
- ((today-nyd).days), güncel tarih ile yeni yıl arasındaki farkı DAYS cinsinden verir
Çıktı şunu gösteriyor: "Yeni Yıl Günü zaten 11 gün önce geçti."
İşte tam çalışma kodu
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Örnek
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)
ÖZET
Tarih ve saatleri hem basit hem de karmaşık şekillerde düzenlemek için datetime modülü farklı sınıflar veya kategoriler sağlar:
- tarih – Sadece tarihi değiştir (Ay, gün, yıl)
- time – Günden bağımsız zaman (Saat, dakika, saniye, mikrosaniye)
- datetime – Saat ve tarihin birleşimi (Ay, gün, yıl, saat, saniye, mikrosaniye)
- timedelta— Tarihleri düzenlemek için kullanılan bir zaman aralığı
- tzinfo — Zaman dilimleriyle uğraşmak için soyut bir sınıf
Datetime nesnelerini kullanma
- Kodu çalıştırmadan önce datetime nesnelerinin içe aktarılması zorunludur
- Tarih/ay/yılı ayrı ayrı yazdırmak ve günü indekslemek için date.today fonksiyonunun kullanılması
- Saat, dakika, saniye ve milisaniye cinsinden zamanı almak için date.time nesnesini kullanma
Zaman Aşımını “str f time function” ile biçimlendirmek
- Yılın formatını değiştirmek için “str f time function”u kullanın
- Gün, tarih, ay ve yılı ayrı ayrı yazdırabilir,
- Herhangi bir format için çağrı süresi 12 saat veya 24 saat
Zaman deltası nesneleri
- Timedelta nesneleriyle hem gelecek hem de geçmiş için zamanı tahmin edebilirsiniz
- Özel güne (doğum gününe) kalan toplam günleri mevcut saatten hesaplayın
- Geçerli saatten özel gün (doğum günü) için geçen toplam günleri hesaplayın