Python cung cấp một số thư viện để làm việc với thời gian. Trong bài viết hôm nay Lập trình không khó xin giới thiệu cho các bạn thư viện datetime trong python để làm việc với thời gian.
Thư viện datetime trong Python được phân loại thành 5 lớp chính.
- date – Thao tác chỉ ngày (Tháng, ngày, năm)
- time – Thời gian độc lập trong ngày (Giờ, phút, giây, micro giây)
- datetime – Kết hợp thời gian và ngày (Tháng, ngày, năm, giờ, giây, micro giây)
- timedelta Wiki Một khoảng thời gian được sử dụng để thao túng ngày
Date & DateTime trong python
Việc đầu tiên cần làm là import thư viện datetime trong python:
from datetime import datetime from datetime import time from datetime import date
Lấy ngày bằng today
Chức năngdate.today
có một số thuộc tính liên quan đến nó. Chúng ta có thể in ngày / tháng / năm và nhiều thứ khác.
Lấy ngày tháng năm hiện tại:
from datetime import date print("hôm nay là ngày: ", date.today()) #return hôm nay là ngày: 2019-12-25
Chỉ cần hai dòng lệnh chúng ta đã có thể lấy được ngày tháng hiện tại.
Bạn cũng có thể lấy riêng ra ngày, hoặc tháng, hoặc năm như ở trong ví dụ dưới:
from datetime import date today = date.today() Day = today.day Month = today.month Year = today.year print("hôm nay là ngày: ", Day, Month, Year)
kết quả:
hôm nay là ngày: 25 12 2019
Cách lấy xem hôm nay là thứ mấy trong tuần
Thư viện datetime trong python cung cấp cho ta hàm date.today()
để lấy số ngày trong tuần. Dưới đây là Bảng ngày bắt đầu với Thứ Hai là 0 và Chủ Nhật là 6
ngày | Số tuần |
---|---|
Thứ hai | 0 |
Thứ ba | 1 |
Thứ tư | 2 |
Thứ năm | 3 |
Thứ sáu | 4 |
ngày thứ bảy | 5 |
chủ nhật | 6 |
Thứ trong tuần rất hữu ích cho các mảng có chỉ số phụ thuộc vào Ngày trong tuần.
#ví dụ về datetime trong python from datetime import date today = date.today() print("hôm nay là ngày thứ", today.weekday(), "trong tuần")
Tại thời điểm bài viết là thứ 4 ngày 25/12/2019 nên kết quả là:
hôm nay là ngày thứ 2 trong tuần
Ví dụ nhỏ:
in ra xem hôm nay là thứ mấy trong tuần
#import các thư viện from datetime import datetime from datetime import date today = datetime.today() #lấy số ngày trong tuần wd = date.weekday(today) #tạo danh sách tên các thứ trong tuần days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] #in ra kết quả print('Today is day number', wd) print('which is a', days[wd])
Kết quả:
Today is day number 2 which is a Wednesday
Ngày và giờ hiện tại trong Python
Giống như date
, chúng ta cũng có thể sử dụng thư viện datetime
trong Python. Nó đưa ra ngày cùng với thời gian tính bằng giờ, phút, giây và mili giây.
Sử dụng date.now
chúng ta có thể lấy được thời gian và ngày hiện tại:
from datetime import datetime today = datetime.now() print("ngày và giờ hiện tại:", today)
kết quả:
ngày và giờ hiện tại: 2019-12-25 19:15:29.242001
Như kết quả, bạn có thể thấy là thời gian được tính đến mili giây.
Và nếu bạn chỉ muốn in ra giờ, phút, giây bạn có thể làm như trong ví dụ ở dưới:
from datetime import datetime today = datetime.now() #lấy ra ngày giờ hiện tại second = today.second minute = today.minute hour = today.hour print("giờ hiện tại:", hour, minute, second)
kết quả:
giờ hiện tại: 19 20 12
Cách định dạng đầu ra ngày và thời gian với Strftime ()
Đến bây giờ chúng ta đã học, cách sử dụng đối tượng date và datetime trong Python. Chúng tôi sẽ tiến thêm một bước nữa và tìm hiểu cách sử dụng chức năng định dạng để định dạng ngày và giờ
Bước 1: Đầu tiên chúng ta sẽ thấy một bước đơn giản về cách định dạng năm. Hãy nhìn vào ví dụ:
#ví dụ về datetime trong python from datetime import datetime # from datetime import time from datetime import date today = datetime.now() print(today.strftime('%Y')) #return 2019
- Chúng tôi đã sử dụng ” hàm strftime” để định dạng.
- Hàm này sử dụng mã điều khiển khác nhau để đưa ra đầu ra.
- Mỗi mã kiểm soát giống với các tham số khác nhau như năm, tháng, ngày trong tuần và ngày [(% y /% Y – Năm), (% a /% A- ngày trong tuần), (% b /% B- tháng), (% d – ngày của tháng)].
- Trong trường hợp của chúng tôi, đó là (“% Y”) giống với năm, nó in ra năm (ví dụ: 2019).
Bây giờ nếu bạn thay thế (“% Y”) bằng chữ thường, nghĩa là (“% y) và thực thi mã, đầu ra sẽ chỉ hiển thị (19) chứ không phải (2019).
Hàm strftime
có thể khai báo riêng ngày, ngày, tháng và năm. Ngoài ra với những thay đổi nhỏ trong mã điều khiển trong strftime
bạn có thể định dạng kiểu văn bản.
Bên trong hàm strftime
nếu bạn thay thế (% a) bằng chữ A, nghĩa là, (% A), đầu ra sẽ in ra là “Wednesday” thay vì chỉ viết tắt “Wed”.
Với sự trợ giúp của chức năng Strftime
, chúng ta cũng có thể truy xuất thời gian hệ thống cục bộ, ngày hoặc cả hai.
- % C- cho biết ngày, giờ, tuần,…
- % x- cho biết ngày
- % X- cho biết giờ
from datetime import datetime today = datetime.now() print(today.strftime('%c')) print(today.strftime('%x')) print(today.strftime('%X'))
kết quả:
Wed Dec 25 19:52:06 2019 12/25/19 19:52:06
Hàm strftime
cho phép bạn gọi thời gian ở bất kỳ định dạng nào trong 24 giờ hoặc 12 giờ.
from datetime import datetime today = datetime.now() print(today.strftime('%I:%M:%S %p'))
Chỉ bằng cách xác định mã kiểm soát như % I / H cho giờ,% M cho phút,% S cho giây, người ta có thể gọi thời gian cho các định dạng khác nhau
Thời gian 12 giờ được khai báo [print(now.strftime (“% I:% M:% S% P))]
Thời gian 24 giờ được khai báo [print(now.strftime (“% H:% M”))]
Một số định dạng thường dùng
- %A: Hiển thị tên đầy đủ của các thứ trong tuần (Monday, Tuesday,…).
- %a: Hiển thị tên viết tắt của các thứ trong tuần (Mon, Tue,…).
- %B: Hiển thị tên đầy đủ của các tháng.
- %b: Hiển thị tên viết tắt của các tháng.
- %d: Hiển thị ngày từ 1 đến 31.
- %H: Hiển thị giờ loại 24h từ 00 đến 23.
- %I: Hiện thị giờ loại 12h từ 01 đến 12.
- %j: Hiển thị số ngày của năm từ 001 đến 366.
- %m: Hiển thị tháng từ 01 đến 12.
- %M: Hiển thị phút từ 00 đến 59.
- %S: Hiển thị giây từ 00 đến 59.
- %Y: Hiển thị đầy đủ năm.
- %y: Hiển thị viết tắt của năm từ 00 đến 99 (Năm 2019 viết tắt thành 19).
- % C- cho biết ngày, giờ, tuần,…
- % x- cho biết ngày
- % X- cho biết giờ
Cách sử dụng Timedelta
Với các timedelta, bạn có thể ước tính thời gian cho cả tương lai và quá khứ. Nói cách khác, đó là một khoảng thời gian để dự đoán bất kỳ ngày, ngày hoặc thời gian đặc biệt.
Hãy nhớ rằng chức năng này không phải để in ra thời gian hay ngày tháng, mà là một cái gì đó để TÍNH TOÁN về tương lai hoặc quá khứ . Hãy xem một ví dụ để hiểu hơn.
from datetime import datetime from datetime import timedelta print(str(datetime.now() + timedelta(days = 365)))
Phía trên là một ví dụ để tính xem 365 ngày sau kể từ ngày 25/12/2019 sẽ là ngày bao nhiêu, và kết quả là:
2020-12-24 20:00:36.935888
Và trong kết quả thì ngày 25/12/2019 + 365 ngày sẽ là ngày noel của năm sau.
Hãy xét thêm một ví dụ sau để hiểu hơn.
from datetime import datetime from datetime import timedelta #ngày hôm nay cộng với 365 ngày print(str(datetime.now() + timedelta(days = 365))) #tương tự như vậy chúng ta có thể cộng thêm cả giờ, giây, phút,... print(str(datetime.now() + timedelta(days = 365, hours=8, minutes=10, weeks=1)))
kết quả:
2020-12-24 20:05:22.064076 2021-01-01 04:15:22.064076
ở dòng thứ 2 sẽ là kết quả của việc + 365 ngày + 8 giờ + 10 phút +1 tuần. Tôi nghĩ là vậy
Tóm lược
Để thao tác ngày và giờ theo cả hai cách đơn giản và phức tạp, mô đun datetime cung cấp các lớp hoặc danh mục khác nhau như
- date – Thao tác chỉ ngày (Tháng, ngày, năm)
- time – Thời gian độc lập trong ngày (Giờ, phút, giây, micro giây)
- datetime – Kết hợp thời gian và ngày (Tháng, ngày, năm, giờ, giây, micro giây)
- timedelta Wiki Một khoảng thời gian được sử dụng để thao túng ngày
Sử dụng các đối tượng datetime
- Nhập đối tượng datetime trước khi thực thi mã là bắt buộc
- Sử dụng chức năng date.today để in ngày / tháng / năm riêng lẻ cũng như lập chỉ mục trong ngày
- Sử dụng đối tượng date.time để nhận thời gian theo giờ, phút, giây và mili giây
Định dạng hết thời gian với “hàm thời gian str”
- Sử dụng
strftime
để thay đổi định dạng của năm - In riêng ngày, ngày, tháng và năm,
- Gọi thời gian cho bất kỳ định dạng 12 giờ hoặc 24 giờ
Đối tượng Timedelta
- Với các đối tượng timedelta, bạn có thể ước tính thời gian cho cả tương lai và quá khứ
- Tính tổng số ngày còn lại cho ngày đặc biệt (sinh nhật) kể từ thời điểm hiện tại
- Tính tổng số ngày đã qua cho ngày đặc biệt (sinh nhật) kể từ thời điểm hiện tại
Hãy tham gia group lập trình không khó để cùng thảo luận về các vấn đề về lập trình.
Hẹn các bạn vào các bài học sau!!!
Để lại một bình luận