Masa python (Dengan Contoh)

Dalam artikel ini, anda akan belajar memanipulasi tarikh dan masa di Python dengan bantuan contoh.

Python mempunyai modul bernama datetime untuk berfungsi dengan tarikh dan masa. Mari buat beberapa program mudah yang berkaitan dengan tarikh dan masa sebelum kita menggali lebih mendalam.

Contoh 1: Dapatkan Tarikh dan Masa Semasa

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

Semasa anda menjalankan program, output akan menjadi seperti:

 2018-12-19 09: 26: 03.478039

Di sini, kami telah mengimport modul datetime menggunakan import datetimepenyataan.

Salah satu kelas yang ditentukan dalam datetimemodul adalah datetimekelas. Kami kemudian menggunakan now()kaedah untuk membuat datetimeobjek yang mengandungi tarikh dan waktu tempatan semasa.

Contoh 2: Dapatkan Tarikh Semasa

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

Semasa anda menjalankan program, output akan menjadi seperti:

 2018-12-19

Dalam program ini, kami telah menggunakan today()kaedah yang ditentukan dalam datekelas untuk mendapatkan dateobjek yang mengandungi tarikh tempatan semasa.

Apa yang ada di dalam masa masa?

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

 import datetime print(dir(datetime))

Semasa anda menjalankan program, outputnya adalah:

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

Kelas yang biasa digunakan dalam modul datetime adalah:

  • Kelas tarikh
  • Kelas masa
  • Kelas masa
  • Kelas timedelta

datetime.date Class

Anda boleh menunjukkan dateobjek dari datekelas. Objek tarikh mewakili tarikh (tahun, bulan dan hari).

Contoh 3: Objek tarikh untuk mewakili tarikh

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

Semasa anda menjalankan program, outputnya adalah:

 2019-04-13

Sekiranya anda tertanya-tanya, date()dalam contoh di atas adalah pembina datekelas. Pembina mengambil tiga hujah: tahun, bulan dan hari.

Pemboleh ubah a adalah dateobjek.

Kami hanya boleh mengimport datekelas dari datetimemodul. Ini caranya:

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

Contoh 4: Dapatkan tarikh terkini

Anda boleh membuat dateobjek yang mengandungi tarikh semasa dengan menggunakan kaedah kelas bernama today(). Ini caranya:

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

Contoh 5: Dapatkan tarikh dari cap waktu

Kita juga boleh membuat dateobjek dari cap waktu. Cap waktu Unix ialah bilangan saat antara tarikh tertentu dan 1 Januari 1970 di UTC. Anda boleh menukar cap waktu hingga kini menggunakan fromtimestamp()kaedah.

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

Semasa anda menjalankan program, outputnya adalah:

 Tarikh = 2012-01-11

Contoh 6: Cetak tahun, bulan dan hari hari ini

Kita dapat memperoleh tahun, bulan, hari, hari dalam seminggu dan lain-lain dari objek tarikh dengan mudah. Ini 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 masa yang dibuat dari timekelas mewakili waktu tempatan.

Contoh 7: Objek masa untuk mewakili masa

  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) 

Semasa anda menjalankan program, outputnya adalah:

 a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11: 34: 56,234566 

Contoh 8: Cetak jam, minit, kedua dan mikrodetik

Sebaik sahaja anda membuat timeobjek, anda dapat mencetak atributnya dengan mudah seperti jam, minit 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) 

Apabila anda menjalankan contohnya, outputnya adalah:

 jam = 11 minit = 34 saat = 56 mikrodetik = 0 

Perhatikan bahawa kita belum lulus argumen mikrodetik. Oleh itu, nilai lalai 0dicetak.

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. rentetan yang mewakili tarikh dan masa
  2. kod format yang setara dengan argumen pertama

Dengan cara ini, %d, %Bdan %Ykod format digunakan untuk hari, bulan (nama penuh) dan tahun masing-masing.

Lawati Python strptime () untuk mengetahui lebih lanjut.

Mengendalikan zon waktu di Python

Katakanlah, anda sedang mengusahakan projek dan perlu memaparkan tarikh dan masa berdasarkan zon waktu mereka. Daripada cuba mengendalikan zon waktu sendiri, kami mencadangkan anda 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")) 

Semasa anda menjalankan program, output akan menjadi seperti:

 Waktu tempatan: 2018-12-20 13: 10: 44.260462 America / New_York time: 2018-12-20 13: 10: 44.260462 Eropah / London waktu: 2018-12-20 13: 10: 44.260462 

Di sini, datetime_NY dan datetime_London adalah objek datetime yang mengandungi tarikh dan masa semasa zon waktu masing-masing.

Artikel menarik...