Tanggal waktu Python (Dengan Contoh)

Pada artikel ini, Anda akan belajar memanipulasi tanggal dan waktu dengan Python dengan bantuan contoh.

Python memiliki modul bernama datetime untuk bekerja dengan tanggal dan waktu. Mari buat beberapa program sederhana yang berkaitan dengan tanggal dan waktu sebelum kita menggali lebih dalam.

Contoh 1: Dapatkan Tanggal dan Waktu Saat Ini

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

Saat Anda menjalankan program, hasilnya akan seperti ini:

 2018-12-19 09: 26: 03.478039

Di sini, kami telah mengimpor modul datetime menggunakan import datetimepernyataan.

Salah satu kelas yang didefinisikan dalam datetimemodul adalah datetimekelas. Kami kemudian menggunakan now()metode untuk membuat datetimeobjek yang berisi tanggal dan waktu lokal saat ini.

Contoh 2: Dapatkan Tanggal Sekarang

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

Saat Anda menjalankan program, hasilnya akan seperti ini:

 2018-12-19

Dalam program ini, kami telah menggunakan today()metode yang ditentukan di datekelas untuk mendapatkan dateobjek yang berisi tanggal lokal saat ini.

Apa yang ada di dalam datetime?

Kita bisa menggunakan fungsi dir () untuk mendapatkan daftar yang berisi semua atribut modul.

 import datetime print(dir(datetime))

Saat Anda menjalankan program, hasilnya adalah:

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

Kelas yang umum digunakan dalam modul datetime adalah:

  • tanggal Kelas
  • Kelas waktu
  • Kelas datetime
  • Timedelta Kelas

datetime.date Kelas

Anda dapat membuat instance dateobjek dari datekelas. Objek tanggal mewakili tanggal (tahun, bulan dan hari).

Contoh 3: Objek tanggal untuk mewakili tanggal

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

Saat Anda menjalankan program, hasilnya adalah:

 2019-04-13

Jika Anda bertanya-tanya, date()dalam contoh di atas adalah konstruktor datekelas. Konstruktor membutuhkan tiga argumen: tahun, bulan dan hari.

Variabel a adalah sebuah dateobjek.

Kami hanya dapat mengimpor datekelas dari datetimemodul. Begini caranya:

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

Contoh 4: Dapatkan tanggal sekarang

Anda dapat membuat dateobjek yang berisi tanggal sekarang dengan menggunakan metode kelas bernama today(). Begini caranya:

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

Contoh 5: Dapatkan tanggal dari stempel waktu

Kita juga dapat membuat dateobjek dari stempel waktu. Stempel waktu Unix adalah jumlah detik antara tanggal tertentu dan 1 Januari 1970 di UTC. Anda dapat mengubah stempel waktu menjadi tanggal menggunakan fromtimestamp()metode.

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

Saat Anda menjalankan program, hasilnya adalah:

 Tanggal = 2012-01-11

Contoh 6: Cetak tahun, bulan, dan hari hari ini

Kita bisa mendapatkan tahun, bulan, hari, hari dalam seminggu dll dari objek tanggal dengan mudah. Begini caranya:

  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

Objek waktu yang dibuat dari timekelas mewakili waktu lokal.

Contoh 7: Objek waktu mewakili waktu

  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) 

Saat Anda menjalankan program, hasilnya adalah:

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

Contoh 8: Cetak jam, menit, detik, dan mikrodetik

Setelah Anda membuat timeobjek, Anda dapat dengan mudah mencetak atributnya seperti jam, menit, dll.

  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) 

Saat Anda menjalankan contoh, hasilnya adalah:

 jam = 11 menit = 34 detik = 56 mikrodetik = 0 

Perhatikan bahwa kita belum memberikan argumen mikrodetik. Karenanya, nilai defaultnya 0akan dicetak.

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. string yang mewakili tanggal dan waktu
  2. kode format yang setara dengan argumen pertama

By the way, %d, %Bdan %Ykode format yang digunakan untuk hari, bulan (nama lengkap) dan tahun masing-masing.

Kunjungi Python strptime () untuk mempelajari lebih lanjut.

Menangani zona waktu dengan Python

Misalkan, Anda sedang mengerjakan sebuah proyek dan perlu menampilkan tanggal dan waktu berdasarkan zona waktunya. Daripada mencoba menangani zona waktu sendiri, kami menyarankan Anda untuk menggunakan modul pytZ pihak ketiga.

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

Saat Anda menjalankan program, hasilnya akan seperti ini:

 Waktu lokal: 2018-12-20 13: 10: 44.260462 Amerika / New_York waktu: 2018-12-20 13: 10: 44.260462 Waktu Eropa / London: 2018-12-20 13: 10: 44.260462 

Di sini, datetime_NY dan datetime_London adalah objek datetime yang berisi tanggal dan waktu saat ini dari zona waktunya masing-masing.

Artikel yang menarik...