Python Ngày Giờ, GiờDelta, Strftime(Format) với các ví dụ
⚡ Tóm tắt thông minh
Python Lớp `datetime`, cùng với các lớp `date`, `time` và `timedelta`, xử lý ngày tháng, thời gian và khoảng thời gian dưới dạng đối tượng. Mô-đun `datetime` định dạng đầu ra bằng hàm `strftime()`, phân tích chuỗi và tính toán thời điểm trong tương lai hoặc quá khứ bằng phép toán `timedelta`.

In Python, ngày, giờ và ngày giờ Các lớp cung cấp một số hàm để xử lý ngày tháng, thời gian và khoảng thời gian. Ngày tháng và thời gian trong Python Chúng là các đối tượng, vì vậy khi bạn thao tác với chúng, bạn thực sự đang thao tác với các đối tượng chứ không phải chuỗi ký tự hay dấu thời gian. Bất cứ khi nào bạn thao tác với ngày tháng hoặc thời gian, bạn cần nhập mô-đun `datetime`.
Các lớp ngày giờ trong Python Chúng được phân loại thành 5 nhóm chính.
- date – Chỉ thao tác ngày (Tháng, ngày, năm)
- time – Thời gian không phụ thuộc vào 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— Khoảng thời gian được sử dụng để thao tác ngày tháng
- tzinfo— Một abstracLớp t dùng để xử lý múi giờ
Cách sử dụng lớp Date & DateTime
Bước 1) Trước khi bạn chạy mã cho định dạng ngày giờ trong Python, điều quan trọng là bạn phải nhập Python mô-đun ngày giờ như trong ảnh chụp màn hình bên dưới.
Các câu lệnh nhập này là các phần chức năng được xác định trước trong Python Thư viện cho phép bạn thao tác với ngày giờ mà không cần viết bất kỳ đoạn mã nào.
Hãy xem xét những điểm sau đây trước khi thực hiện Python mã định dạng ngày giờ
from datetime import date
Dòng này cho biết Python trình thông dịch để nhập lớp ngày từ mô-đun datetime trong PythonChúng tôi không tự viết mã cho chức năng ngày tháng này mà chỉ đơn giản là nhập nó để sử dụng.
In ngày bằng date.today()
Hàm date.today() có nhiều thuộc tính. Chúng ta có thể in ra ngày/tháng/năm cụ thể và nhiều thông tin khác.
Hãy xem một ví dụ
Số ngày trong tuần hôm nay
Hàm date.today() cũng cung cấp cho bạn số thứ tự trong tuần. Dưới đây là Bảng Thứ tự trong tuần, bắt đầu từ... Monday là 0 và Chủ nhật là 6.
| ngày | TuầnSố ngày |
|---|---|
| Monday | 0 |
| Thứ Ba | 1 |
| Thứ Tư | 2 |
| Thứ Năm | 3 |
| Thứ Sáu | 4 |
| Thứ Bảy | 5 |
| Chủ Nhật | 6 |
Số ngày trong tuần rất hữu ích cho các mảng có chỉ mục phụ thuộc vào Ngày trong tuần.
Bước 2) Tiếp theo, chúng ta tạo một thể hiện của đối tượng date.
Bước 3) Tiếp theo, chúng ta in ngày tháng và chạy mã.
Kết quả đầu ra đúng như mong đợi.
Python Ngày và giờ hiện tại: now() hôm nay()
Bước 1) Giống như Đối tượng Ngày, chúng ta cũng có thể sử dụng “ĐỐI TƯỢNG NGÀY” in Python. Python các đối tượng ngày và giờ đưa ra ngày cùng với thời gian trong giờ, phút, giây và mili giây.
Khi chúng tôi thực thi mã cho datetime, nó sẽ đưa ra kết quả có ngày và giờ hiện tại.
Bước 2) Với “DATETIME OBJECT”, bạn cũng có thể gọi lớp thời gian. Giả sử chúng ta muốn chỉ in ra thời gian hiện tại mà không có ngày tháng.
t = datetime.time(datetime.now())
- Chúng tôi đã nhập lớp thời gian. Chúng ta sẽ gán cho nó giá trị thời gian hiện tại bằng cách sử dụng datetime.now()
- Chúng ta đang gán giá trị của thời gian hiện tại cho biến t.
Và điều này sẽ cho tôi thời gian. Vì vậy hãy chạy chương trình này.
Được rồi, như các bạn thấy ở đây tôi có cả ngày và giờ. Và dòng tiếp theo, tôi chỉ có mỗi giờ thôi.
Bước 3) Chúng ta sẽ áp dụng chỉ mục ngày trong tuần vào danh sách mảng các ngày trong tuần để biết hôm nay là ngày nào.
- Toán tử ngày trong tuần (wd) được gán số từ (0-6) tùy thuộc vào ngày trong tuần hiện tại. Ở đây chúng ta đã khai báo mảng danh sách các ngày (Thứ Hai, Thứ Ba, Thứ Tư…Chủ Nhật).
- Sử dụng giá trị chỉ mục đó để biết đó là ngày nào. Trong trường hợp của chúng tôi, nó là số 2 và đại diện cho Thứ Tư, vì vậy, trong kết quả đầu ra, nó sẽ in ra “Đó là Thứ Tư”.
Đây là mã hoàn chỉnh để lấy ngày giờ hiện tại bằng cách sử dụng datetime now
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Cách định dạng đầu ra ngày và giờ bằng strftime()
Cho đến nay, chúng ta đã học cách sử dụng ngày giờ và ngày tháng. đối tượng trong Python. Chúng ta 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ẽ xem một bước đơn giản về cách định dạng năm. Nó là tốt hơn để hiểu với một ví dụ.
- Chúng tôi sử dụng “Hàm strftime” để định dạng.
- Chức năng này sử dụng khác nhau mã điều khiển để đưa ra một đầu ra.
- Mỗi mã điều khiển thể hiện các tham số khác nhau như năm, tháng, ngày trong tuần và ngày tháng. [(%y/%Y – Năm), (%a/%A- ngày trong tuần), (%b/%B- tháng), (%d – ngày trong tháng)] .
- Trong trường hợp của chúng tôi, đó là (“%Y”) giống với năm, nó in ra cả năm cùng với thế kỷ (ví dụ: 2018).
Bước 2) Bây giờ nếu bạn thay thế (“%Y”) bằng chữ thường, tức là ( “%y) và thực thi mã thì đầu ra sẽ chỉ hiển thị (18) chứ không hiển thị (2018). Thế kỷ trong năm sẽ không hiển thị như trong ảnh chụp màn hình bên dưới
Bước 3) Hàm strf có thể khai báo ngày, thứ, tháng và năm một cách riêng biệt. Ngoài ra, với một vài thay đổi nhỏ trong mã điều khiển của hàm strftime, bạn có thể định dạng kiểu chữ.
Bên trong hàm strftime, nếu bạn thay thế (%a) bằng chữ A viết hoa, tức là (%A), thì đầu ra sẽ in ra là “Friday” thay vì chỉ là chữ viết tắt “Fri”.
Bước 4) Với sự trợ giúp của chức năng “Strftime”, chúng ta cũng có thể truy xuất ngày, giờ của hệ thống cục bộ hoặc cả hai.
- %C- cho biết ngày giờ địa phương
- %x- cho biết ngày địa phương
- %X- cho biết giờ địa phương
Ở đầu ra, bạn có thể thấy kết quả như mong đợi
Bước 5) “Chức năng strftime” cho phép bạn gọi thời gian ở bất kỳ định dạng nào là 24 giờ hoặc 12 giờ.
Chỉ cần xác định mã điều khiển 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
12 giờ thời gian được khai báo [print now.strftime(“%I:%M:%S %p) ]
24 giờ thời gian được khai báo [print now.strftime(“%H:%M”)]
Đây là mã hoàn chỉnh để chuyển đổi datetime thành đối tượng String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Timedelta là gì trong Python?
Timedelta trong Python `timedelta` là một đối tượng biểu thị khoảng thời gian. Nó chủ yếu được sử dụng để tính toán khoảng thời gian giữa hai ngày và giờ. Nó cũng được sử dụng để truy xuất đối tượng với một khoảng thời gian chênh lệch nào đó. Đối tượng `timedelta` hỗ trợ các phép toán như cộng, trừ.tracphép tính, phép nhân, phép chia, v.v.
Cách sử dụng Timedelta Objects
Với Python Đối tượng timedelta cho phép bạn ước tính thời gian cho cả tương lai và quá khứ. Nói cách khác, đó là khoảng thời gian để dự đoán bất kỳ ngày, ngày hoặc giờ đặc biệt nào.
Hãy nhớ rằng chức năng này không phải để in ra ngày hay giờ mà là để TÍNH TOÁN về tương lai hoặc quá khứHãy xem nào. Python ví dụ về timedelta để hiểu rõ hơn.
Bước 1) Để chạy Timedelta Objects, trước tiên bạn cần khai báo câu lệnh import rồi thực thi mã
- Viết câu lệnh import cho timedelta
- Bây giờ hãy viết mã để in ra đối tượng theo thời gian delta như được hiển thị trong ảnh chụp màn hình
- Chạy mã. Timedelta biểu diễn khoảng thời gian 365 ngày, 8 giờ và 15 phút và in ra cùng một
Gây nhầm lẫn? Bước tiếp theo sẽ giúp-
Bước 2) Hãy lấy ngày giờ hôm nay để kiểm tra xem câu lệnh nhập của chúng ta có hoạt động tốt không. Khi mã được thực thi, nó sẽ in ra ngày hôm nay, điều đó có nghĩa là câu lệnh nhập của chúng tôi đang hoạt động tốt
Bước 3) Chúng ta sẽ xem cách chúng ta có thể lấy ngày một năm kể từ bây giờ thông qua các đối tượng delta. Khi chúng ta chạy mã, nó sẽ đưa ra kết quả như mong đợi.
Bước 4) Một ví dụ khác về cách sử dụng delta thời gian để tính ngày trong tương lai từ ngày và giờ hiện tại
Bước 5) Chúng ta hãy xem xét một ví dụ phức tạp hơn. Tôi muốn xác định còn bao nhiêu ngày nữa là đến năm mới. Sau đây là cách chúng ta sẽ tiến hành
- Sử dụng hôm nay= date.today() chúng ta sẽ có được ngày hôm nay
- Chúng tôi biết năm mới luôn diễn ra vào ngày 1 tháng 1,1, nhưng năm đó có thể khác. Sử dụng nyd= date(today.year,XNUMX) chúng ta lưu năm mới vào biến nyd
- Nếu nyd < today: so sánh xem ngày hiện tại có lớn hơn năm mới hay không. Nếu có, nó sẽ vào vòng lặp while.
- ((today-nyd).days) cho biết sự khác biệt giữa ngày hiện tại và năm mới tính bằng DAYS
Kết quả cho thấy “Ngày đầu năm mới đã trôi qua được 11 ngày”.
Đây là mã làm việc hoàn chỉnh
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Ví dụ
Các ví dụ sau đây minh họa các thao tác ngày và giờ tương tự được viết cho Python 2, trong đó print là một câu lệnh chứ không phải là một hàm. Chỉ sử dụng các phiên bản này khi bảo trì hệ thống cũ. Python Mã 2.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















