Python TarihSaat, SaatDelta, Strftime(Format) Örneklerle

⚡ Akıllı Özet

Python `datetime` modülü, `date`, `time` ve `timedelta` sınıflarıyla birlikte tarihleri, saatleri ve aralıkları nesne olarak ele alır. `datetime` modülü, çıktıyı `strftime()` ile biçimlendirir, dizeleri ayrıştırır ve `timedelta` aritmetiğini kullanarak gelecekteki veya geçmişteki anları hesaplar.

  • 🔘 Beş sınıf: Datetime modülü, tarih ve saat işlemleri için date, time, datetime, timedelta ve tzinfo sınıflarını gruplandırır.
  • ☑️ Güncel değerler: `datetime.now()` ve `date.today()` fonksiyonları, haftanın gün numarasını da içeren mevcut tarih ve saati döndürür.
  • Biçimlendirme: `strftime()` fonksiyonu, `%Y`, `%A` ve `%H` gibi kontrol kodları kullanarak bir tarih ve saati okunabilir metne dönüştürür.
  • 🧪 Zaman farkı: Bir timedelta nesnesi bir süreyi ölçer ve toplama ve çıkarma işlemleri yoluyla gelecekteki veya geçmiş tarihleri ​​tahmin eder.tracyon.
  • Direktifler: Aynı kontrol kodları, çıktı için strftime() ve bir dizeyi tekrar datetime'a okumak için strptime() işlevlerini çalıştırır.
  • 🤖 Yapay zeka iş akışları: Makine öğrenimi işlem hatları, zaman serisi modelleri için hafta içi ve saat gibi tarih ve saat özelliklerini türetir.

Python DateTime

In Python, tarih, saat ve tarihsaat Sınıflar, tarihler, saatler ve zaman aralıklarıyla ilgili çeşitli işlevler sunar. Tarih ve saat kavramları da bu işlevler arasındadır. Python Bunlar nesnelerdir, bu nedenle onları manipüle ettiğinizde aslında dizeleri veya zaman damgalarını değil, nesneleri manipüle edersiniz. Tarih veya zamanı manipüle ettiğiniz her durumda, datetime modülünü içe aktarmanız gerekir.

Datetime sınıfları Python 5 ana sınıfa ayrılırlar.

  • 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— Bir abstracZaman dilimleriyle başa çıkmak için t 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.

Date & DateTime Sınıfını Kullan

Bu içe aktarma ifadeleri, önceden tanımlanmış işlevsellik parçalarıdır. Python Kod yazmadan tarih ve saatleri düzenlemenizi sağlayan bir 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 PythonBu tarih işlevine ait kodu biz yazmıyoruz, sadece kendi kullanımımız için içe aktarıyoruz.

Date.today() işlevini kullanarak Tarihi Yazdır

`date.today()` fonksiyonunun çeşitli özellikleri vardır. Bu fonksiyonla gün/ay/yıl ve daha birçok bilgiyi yazdırabiliriz.

Bir örnek görelim

Date.today() işlevini kullanarak Tarihi Yazdır

Bugünün Hafta İçi Sayısı

`date.today()` fonksiyonu size haftanın hangi günü olduğunu da verir. İşte haftanın hangi günüyle başlayan Haftanın Günleri Tablosu: Monday Pazar günü 0, Pazar günü ise 6 olarak.

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.

Date.today() işlevini kullanarak Tarihi Yazdır

2. Adım) Daha sonra tarih nesnesinin bir örneğini oluşturuyoruz.

Date & DateTime Sınıfını Kullan

3. Adım) Daha sonra tarihi yazdırıp kodu çalıştırıyoruz.

Date & DateTime Sınıfını Kullan

Sonuç beklendiği gibi.

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.

Python Güncel Tarih ve Saat

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. Örneğin, tarihi göstermeden sadece 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.

Python Güncel Tarih ve Saat

Tamam, burada tarih ve saati görebiliyorsunuz. Sonraki satırda ise sadece saati görüyorum.

) 3 Adım Bugünün hangi gün olduğunu öğrenmek için hafta içi indeksleyicimizi hafta içi günlerinin dizi listesine uygulayacağız.

  • Hafta içi günleri operatörü (wd), mevcut hafta içi gününe bağlı olarak (0-6) arasında bir sayı alır. Burada günlerin listesini (Paz, Sal, Çar…Paz) içeren bir dizi tanımladık.
  • 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.

Python Güncel Tarih ve Saat

Ş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

Şimdiye kadar datetime ve date kavramlarını nasıl kullanacağımızı öğ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.

Tarih ve Saat Çıkışını Strftime() ile Biçimlendir

  • Kullandık “strftime fonksiyonu” biçimlendirme için.
  • Bu işlev farklı kullanır kontrol kodu bir çıktı vermek için.
  • Her bir kontrol kodu, yıl, ay, hafta içi ve tarih gibi farklı parametrelere karşılık gelir. [(%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

Tarih ve Saat Çıkışını Strftime() ile Biçimlendir

) 3 Adım `Strf` fonksiyonu, tarihi, günü, ayı ve yılı ayrı ayrı tanımlayabilir. Ayrıca, `strftime` fonksiyonundaki kontrol kodunda küçük değişiklikler yaparak metnin stilini de biçimlendirebilirsiniz.

Tarih ve Saat Çıkışını Strftime() ile Biçimlendir

`strftime` fonksiyonunun içinde (%a) yerine büyük A, yani (%A) yazarsanız, çıktı sadece "Fri" kısaltması yerine "Friday" olarak yazdırılacaktır.

Tarih ve Saat Çıkışını Strftime() ile Biçimlendir

) 4 Adım “Strftime” fonksiyonu yardımıyla yerel sistem saatini, tarihini veya her ikisini de alabiliriz.

  1. %C- yerel tarih ve saati gösterir
  2. %x- yerel tarihi gösterir
  3. %X- yerel saati gösterir

Tarih ve Saat Çıkışını Strftime() ile Biçimlendir

Çı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.

Tarih ve Saat Çıkışını Strftime() ile Biçimlendir

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.

En fazla 12 saat içerisinde size döneceğiz. zaman bildirildi [print now.strftime(“%I:%M:%S %p) ]

En fazla 24 saat içerisinde size döneceğiz. 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 `timedelta` nesnesi, süreyi temsil eden bir nesnedir. Esas olarak iki tarih ve saat arasındaki süreyi hesaplamak için kullanılır. Ayrıca, belirli bir tarih ve saat farkıyla nesneyi almak için de kullanılır. `timedelta` nesnesi, toplama, çıkarma gibi matematiksel işlemleri destekler.tracçarpma, bölme vb.

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.Bir bakalım. 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

  1. timedelta için içe aktarma ifadesi yazın
  2. Şimdi ekran görüntüsünde gösterildiği gibi zaman deltasından nesneyi yazdırmak için kodu yazın
  3. 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

Zaman deltası nesneleri

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

Zaman deltası nesneleri

) 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.

Zaman deltası nesneleri

) 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

Zaman deltası nesneleri

) 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
  • Eğer nyd < today ise: mevcut tarihin yeni yıldan büyük olup olmadığını kontrol eder. 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

Zaman deltası nesneleri

Çı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

Aşağıdaki örnekler, aynı tarih ve saat işlemlerinin nasıl yazıldığını göstermektedir. Python 2. sürümde `print` bir fonksiyon değil, bir ifadedir. Bu sürümleri yalnızca eski sistemleri korurken kullanın. Python 2 kod.

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)

SSS

Bir metin dizesini datetime nesnesine dönüştürmek için `datetime.strptime(text, format)` kullanın. `strftime()`'ın kullandığı aynı yönergeleri geçirin, böylece "2018-06-29" "%Y-%m-%d" olarak okunur. `strftime()`'ın tersi olan `strptime()`, insan tarafından okunabilir metni, üzerinde işlem yapabileceğiniz bir datetime nesnesine dönüştürür.

Saat dilimi bilgisi içermeyen bir tarih ve saat bilgisi yetersizdir; saat dilimi eklemek onu bilgili hale getirir. Dahili saat dilimi bilgisi modülünü kullanın (Python 3.9+) veya pytz paketini kullanarak tarih ve saatleri yerelleştirin, ardından bölgeler arasında dönüştürme yapın, böylece hesaplamalar bölgeler arasında doğru kalır.

Bir datetime nesnesinde timestamp() yöntemini çağırarak Unix epoch'undan bu yana geçen saniyeleri ondalık sayı olarak elde edebilirsiniz; örneğin, datetime.now().timestamp(). Tersi yönde ise, datetime.fromtimestamp(value) yöntemi bir Unix zaman damgasından bir datetime nesnesi yeniden oluşturur.

Her ikisi de geçerli yerel tarih ve saati döndürür, ancak `datetime.now()` isteğe bağlı bir saat dilimi argümanı kabul ederken, `datetime.today()` kabul etmez. Saat dilimini dikkate alan kodlar için, sonucun doğru zaman farkını taşıması için `datetime.now(tz)`'yi tercih edin.

Evet. Tarih ve saat modülü birlikte geliyor. PythonBu nedenle pip install işlemine gerek yoktur. "from datetime import datetime, date, time, timedelta" komutuyla içe aktardığınızda, date, time, datetime, timedelta ve tzinfo sınıfları hemen kullanılabilir hale gelir.

“2018-06-29T08:15:27” gibi standart bir ISO 8601 dizesi elde etmek için isoformat() yöntemini çağırın. Bir tarih nesnesi için “YYYY-MM-DD” döndürür. isoformat(), yönergelerden özel düzenler oluşturan strftime()'ın aksine, kontrol kodlarına ihtiyaç duymaz.

Makine öğrenimi süreçleri, ham zaman damgalarını datetime ve timedelta kullanarak hafta içi gün, saat, ay ve geçen süre gibi özelliklere dönüştürür. Bu tasarlanmış tarih özellikleri, zaman serisi modellerinin ve yapay zeka tahmin sistemlerinin mevsimsel ve döngüsel kalıpları tespit etmesine yardımcı olur.

Evet. GitHub Copilot ve yapay zekâ destekli yardımcılar, kısa bir yorumdan strftime() biçim dizeleri, zaman farkı aritmetiği ve saat dilimi dönüşümleri oluşturabilir ve anlaşılması güç yönergeleri açıklayabilir. Tarih işleme ve zaman farkı hesaplamalarında hata yapma olasılığı yüksek olduğundan, önerilen kodu her zaman çalıştırın.

Bu yazıyı şu şekilde özetleyin: