Python tarih saati (Örneklerle)

Bu makalede, örnekler yardımıyla Python'da tarih ve saati değiştirmeyi öğreneceksiniz.

Python, tarih ve saatlerle çalışmak için datetime adında bir modüle sahiptir . Daha derine inmeden önce tarih ve saatle ilgili birkaç basit program oluşturalım.

Örnek 1: Geçerli Tarih ve Saati Alın

 import datetime datetime_object = datetime.datetime.now() print(datetime_object) 

Programı çalıştırdığınızda, çıktı şöyle olacaktır:

 2018-12-19 09: 26: 03.478039

Burada, deyimi kullanarak datetime modülünü içe aktardık import datetime.

Modülde tanımlanan sınıflardan datetimebiri datetimesınıftır. Daha sonra , mevcut yerel tarih ve saati içeren now()bir datetimenesne oluşturmak için yöntemi kullandık .

Örnek 2: Güncel Tarihi Al

  import datetime date_object = datetime.date.today() print(date_object) 

Programı çalıştırdığınızda, çıktı şöyle olacaktır:

 2018-12-19

Bu programda mevcut yerel tarihi içeren bir nesneyi elde etmek için sınıfta today()tanımlanan yöntemi kullandık .datedate

Datetime içinde ne var?

Bir modülün tüm özelliklerini içeren bir liste elde etmek için dir () işlevini kullanabiliriz.

 import datetime print(dir(datetime))

Programı çalıştırdığınızda, çıktı:

 ('MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', ' datetime ',' datetime_CAPI ',' time ',' timedelta ',' timezone ',' tzinfo ') 

Datetime modülünde yaygın olarak kullanılan sınıflar şunlardır:

  • tarih Sınıfı
  • zaman Sınıfı
  • datetime Sınıfı
  • timedelta Sınıfı

datetime.date Sınıfı

Sınıftan datenesneleri başlatabilirsiniz date. Bir tarih nesnesi bir tarihi temsil eder (yıl, ay ve gün).

Örnek 3: Bir tarihi temsil edecek tarih nesnesi

  import datetime d = datetime.date(2019, 4, 13) print(d) 

Programı çalıştırdığınızda, çıktı:

 2019-04-13

Merak ediyorsanız, date()yukarıdaki örnekte datesınıfın bir kurucusu var . Kurucu üç bağımsız değişken alır: yıl, ay ve gün.

A değişkeni bir datenesnedir.

Modülden sadece datesınıfı içe aktarabiliyoruz datetime. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  from datetime import date a = date(2019, 4, 13) print(a)

Örnek 4: Güncel tarihi alın

dateAdlı bir sınıf yöntemi kullanarak geçerli tarihi içeren bir nesne oluşturabilirsiniz today(). Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  from datetime import date today = date.today() print("Current date =", today) 

Örnek 5: Bir zaman damgasından tarih alın

dateBir zaman damgasından da nesneler oluşturabiliriz . Bir Unix zaman damgası, belirli bir tarih ile UTC'de 1 Ocak 1970 arasındaki saniye sayısıdır. fromtimestamp()Yöntemi kullanarak bir zaman damgasını tarihe dönüştürebilirsiniz .

  from datetime import date timestamp = date.fromtimestamp(1326244364) print("Date =", timestamp) 

Programı çalıştırdığınızda, çıktı:

 Tarih = 2012-01-11

Örnek 6: Bugünün yılını, ayını ve gününü yazdırın

Tarih nesnesinden yıl, ay, gün, haftanın günü vb. Bilgileri kolaylıkla alabiliyoruz. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  from datetime import date # date object of today's date today = date.today() print("Current year:", today.year) print("Current month:", today.month) print("Current day:", today.day) 

datetime.time

Sınıftan örneklenen bir zaman nesnesi time, yerel saati temsil eder.

Örnek 7: Zamanı temsil edecek zaman nesnesi

  from datetime import time # time(hour = 0, minute = 0, second = 0) a = time() print("a =", a) # time(hour, minute and second) b = time(11, 34, 56) print("b =", b) # time(hour, minute and second) c = time(hour = 11, minute = 34, second = 56) print("c =", c) # time(hour, minute, second, microsecond) d = time(11, 34, 56, 234566) print("d =", d) 

Programı çalıştırdığınızda, çıktı:

 a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11: 34: 56.234566 

Örnek 8: Saat, dakika, saniye ve mikrosaniye yazdırın

Bir timenesne oluşturduktan sonra saat, dakika vb. Özelliklerini kolayca yazdırabilirsiniz.

  from datetime import time a = time(11, 34, 56) print("hour =", a.hour) print("minute =", a.minute) print("second =", a.second) print("microsecond =", a.microsecond) 

Örneği çalıştırdığınızda, çıktı şöyle olacaktır:

 saat = 11 dakika = 34 saniye = 56 mikrosaniye = 0 

Mikrosaniye argümanını geçmediğimize dikkat edin. Bu nedenle, varsayılan değeri 0yazdırılır.

datetime.datetime

The datetime module has a class named dateclass that can contain information from both date and time objects.

Example 9: Python datetime object

  from datetime import datetime #datetime(year, month, day) a = datetime(2018, 11, 28) print(a) # datetime(year, month, day, hour, minute, second, microsecond) b = datetime(2017, 11, 28, 23, 55, 59, 342380) print(b) 

When you run the program, the output will be:

 2018-11-28 00:00:00 2017-11-28 23:55:59.342380 

The first three arguments year, month and day in the datetime() constructor are mandatory.

Example 10: Print year, month, hour, minute and timestamp

  from datetime import datetime a = datetime(2017, 11, 28, 23, 55, 59, 342380) print("year =", a.year) print("month =", a.month) print("hour =", a.hour) print("minute =", a.minute) print("timestamp =", a.timestamp()) 

When you run the program, the output will be:

 year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238 

datetime.timedelta

A timedelta object represents the difference between two dates or times.

Example 11: Difference between two dates and times

  from datetime import datetime, date t1 = date(year = 2018, month = 7, day = 12) t2 = date(year = 2017, month = 12, day = 23) t3 = t1 - t2 print("t3 =", t3) t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33) t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13) t6 = t4 - t5 print("t6 =", t6) print("type of t3 =", type(t3)) print("type of t6 =", type(t6)) 

When you run the program, the output will be:

 t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = type of t6 = 

Notice, both t3 and t6 are of type.

Example 12: Difference between two timedelta objects

  from datetime import timedelta t1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33) t2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54) t3 = t1 - t2 print("t3 =", t3) 

When you run the program, the output will be:

 t3 = 14 days, 13:55:39 

Here, we have created two timedelta objects t1 and t2, and their difference is printed on the screen.

Example 13: Printing negative timedelta object

  from datetime import timedelta t1 = timedelta(seconds = 33) t2 = timedelta(seconds = 54) t3 = t1 - t2 print("t3 =", t3) print("t3 =", abs(t3)) 

When you run the program, the output will be:

 t3 = -1 day, 23:59:39 t3 = 0:00:21 

Example 14: Time duration in seconds

You can get the total number of seconds in a timedelta object using total_seconds() method.

  from datetime import timedelta t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423) print("total seconds =", t.total_seconds()) 

When you run the program, the output will be:

 total seconds = 435633.233423 

You can also find sum of two dates and times using + operator. Also, you can multiply and divide a timedelta object by integers and floats.

Python format datetime

The way date and time is represented may be different in different places, organizations etc. It's more common to use mm/dd/yyyy in the US, whereas dd/mm/yyyy is more common in the UK.

Python has strftime() and strptime() methods to handle this.

Python strftime() - datetime object to string

The strftime() method is defined under classes date, datetime and time. The method creates a formatted string from a given date, datetime or time object.

Example 15: Format date using strftime()

  from datetime import datetime # current date and time now = datetime.now() t = now.strftime("%H:%M:%S") print("time:", t) s1 = now.strftime("%m/%d/%Y, %H:%M:%S") # mm/dd/YY H:M:S format print("s1:", s1) s2 = now.strftime("%d/%m/%Y, %H:%M:%S") # dd/mm/YY H:M:S format print("s2:", s2) 

When you run the program, the output will be something like:

 time: 04:34:52 s1: 12/26/2018, 04:34:52 s2: 26/12/2018, 04:34:52 

Here, %Y, %m, %d, %H etc. are format codes. The strftime() method takes one or more format codes and returns a formatted string based on it.

In the above program, t, s1 and s2 are strings.

  • %Y - year (0001,… , 2018, 2019,… , 9999)
  • %m - month (01, 02,… , 11, 12)
  • %d - day (01, 02,… , 30, 31)
  • %H - hour (00, 01,… , 22, 23
  • %M - minute (00, 01,… , 58, 59)
  • %S - second (00, 01,… , 58, 59)

To learn more about strftime() and format codes, visit: Python strftime().

Python strptime() - string to datetime

The strptime() method creates a datetime object from a given string (representing date and time).

Example 16: strptime()

  from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) 

When you run the program, the output will be:

 date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00 

The strptime() method takes two arguments:

  1. tarih ve saati temsil eden bir dize
  2. ilk bağımsız değişkene eşdeğer biçim kodu

Bu arada, %d, %Bve %Ybiçim kodları sırasıyla gün, ay (tam adı) ve yıl boyunca kullanılır.

Daha fazla bilgi edinmek için Python strptime () adresini ziyaret edin.

Python'da saat dilimini işleme

Bir proje üzerinde çalıştığınızı ve saat dilimine göre tarih ve saati görüntülemeniz gerektiğini varsayalım. Saat dilimini kendiniz işlemeye çalışmak yerine, üçüncü taraf bir pytZ modülü kullanmanızı öneririz.

  from datetime import datetime import pytz local = datetime.now() print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S")) tz_NY = pytz.timezone('America/New_York') datetime_NY = datetime.now(tz_NY) print("NY:", datetime_NY.strftime("%m/%d/%Y, %H:%M:%S")) tz_London = pytz.timezone('Europe/London') datetime_London = datetime.now(tz_London) print("London:", datetime_London.strftime("%m/%d/%Y, %H:%M:%S")) 

Programı çalıştırdığınızda, çıktı şöyle olacaktır:

 Yerel saat: 2018-12-20 13: 10: 44.260462 America / New_York saati: 2018-12-20 13: 10: 44.260462 Avrupa / Londra saati: 2018-12-20 13: 10: 44.260462 

Burada, datetime_NY ve datetime_London, ilgili saat dilimlerinin geçerli tarih ve saatini içeren tarih saat nesneleridir.

Ilginç makaleler...