Trong các phần trước chúng ta đã tìm hiểu về các kiểu dữ liệu trong python như: kiểu dữ liệu số, kiểu dữ liệu chuỗi, kiểu dữ liệu list, kiểu dữ liệu tuple, kiểu dữ liệu dictionary, kiểu dữ liệu set. Ở bài này chúng ta sẽ đi tìm hiểu về một kiểu dữ liệu cũng rất hay dùng trong khi lập trình python, đó là kiểu dữ liệu thời gian trong python.
Python sử dụng các module thời gian sau : calendar, datetime, date, time để thao tác với các hàm về thời gian.
Để sử dụng các kiểu dữ liệu thời gian trong ptyhon này, bạn cần phải import các thư viện thời gian đó vào chương trình python.
import calendar
import datetime
import time
# sử dung calendar: Lấy ngày đầu tiên của tuần trong python
first_week_day = calendar.firstweekday()
print(first_week_day)
# sử dụng datetime: lấy thời gian hiện tại
x = datetime.datetime.now()
print(x)
# sử dụng time: lấy thời gian
time_tuple = time.localtime() # lấy struct_time
time_string = time.strftime("%Y/%m/%d, %H:%M:%S", time_tuple)
print(time_string)
0
2022-01-10 14:17:25.829255
2022/01/10, 14:17:25
Module calendar cho phép tính toán lịch và cung cấp các hàm liên quan đến lịch. Sau đây là một số hàm và phương thức thường dùng của Module Calendar.
import calendar
nam_nhuan = calendar.isleap(2024)
if nam_nhuan==True:
print("Nam 2024 la nam nhuan.")
else:
print("Năm 2024 khong phai la nam nhuan.")
Nam 2024 la nam nhuan.
import calendar
so_ngay_nhuan = calendar.leapdays(2024,2025)
print(so_ngay_nhuan)
So ngay nhuan la: 1
import calendar
lich_month = calendar.prmonth(2022,1)
print(lich_month)
import calendar
thang_truoc = calendar._prevmonth(2022,1)
print("Thang truoc la: ",thang_truoc)
thang_ketiep = calendar._nextmonth(2022,1)
print("Thang tiep theo la:",thang_ketiep)
Thang truoc la: (2021, 12)
Thang tiep theo la: (2022, 2)
Hàm lấy các ngày trong tháng dưới dạng tuần, hàm này trả về một list các ngày trong tháng trong python.
import calendar
all_days_of_month = calendar.monthcalendar(2022,1)
print(all_days_of_month)
[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30, 31, 0, 0, 0]]
import calendar
first_week_day = calendar.firstweekday()
print("Ngay dau tien trong tuan la:",first_week_day)
Ngay dau tien trong tuan la: 0
import calendar
calendar.setfirstweekday(calendar.FRIDAY)
print(calendar.prmonth(2022,1))
Hàm datetime trong python cho phép bạn thao tác và làm việc với ngày giờ và một số mốc thời gian khác. Sau đây là một số cách sử dụng datetime trong python:
import datetime
Ngay_hien_tai = datetime.date.today()
print("Ngay hien tai la:", Ngay_hien_tai)
Ngay hien tai la: 2022-01-12
import datetime
Ngay_Gio_hien_tai = datetime.datetime.now()
print("Ngay gio hien tai la:", Ngay_Gio_hien_tai)
Ngay gio hien tai la: 2022-01-12 15:17:20.375777
import datetime
Time_fomat = datetime.datetime(2022,1,12)
print("Su dung ham strtime() de dinh dang:",Time_fomat.strftime("%Y-%m-%d"))
Su dung ham strtime() de dinh dang: 2022-01-12
Ngoài ra bạn có thể sử dụng hàm strtime() với các mã code tham số trong danh sách bên dưới để đưa về kiểu định dạng thời gian bạn muốn sử dụng.
Mã code định dạng | Mô tả | Kết quả | |
---|---|---|---|
%a | Weekday, short version | Wed | |
%A | Weekday, full version | Wednesday | |
%w | Weekday as a number 0-6, 0 is Sunday | 3 | |
%d | Day of month 01-31 | 31 | |
%b | Month name, short version | Dec | |
%B | Month name, full version | December | |
%m | Month as a number 01-12 | 12 | |
%y | Year, short version, without century | 18 | |
%Y | Year, full version | 2018 | |
%H | Hour 00-23 | 17 | |
%I | Hour 00-12 | 05 | |
%p | AM/PM | PM | |
%M | Minute 00-59 | 41 | |
%S | Second 00-59 | 08 | |
%f | Microsecond 000000-999999 | 548513 | |
%z | UTC offset | +0100 | |
%Z | Timezone | CST | |
%j | Day number of year 001-366 | 365 | |
%U | Week number of year, Sunday as the first day of week, 00-53 | 52 | |
%W | Week number of year, Monday as the first day of week, 00-53 | 52 | |
%c | Local version of date and time | Mon Dec 31 17:41:00 2018 | |
%C | Century | 20 | |
%x | Local version of date | 12/31/18 | |
%X | Local version of time | 17:41:00 | |
%% | A % character | % | |
%G | ISO 8601 year | 2018 | |
%u | ISO 8601 weekday (1-7) | 1 | |
%V | ISO 8601 weeknumber (01-53) | 01 |