Trong bài này chúng ta sẽ tìm hiểu cách xử lý thời gian [date - time] trong Python như: Cách import object date, lấy thời gian hiện tai, định dạng thời gian, ...
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Trong các ứng dụng thực tế, có những lúc chúng ta cần phải làm việc với ngày tháng và thời gian. Ví dụ cần viết một ứng dụng đặt lịch hẹn bằng ngôn ngữ Python thì ta phải biết cách lấy thời gian trên hệ thống để xử lý.
Trong python, date không phải là kiểu dữ liệu, nhưng chúng ta có thể làm việc với các đối tượng ngày bằng cách import mô-đun có tên là datetime, time và calendar.
I. Mốc thời gian nhỏ nhất trong Python
Cũng như hầu hết các ngôn ngữ lập trình khác, Python lấy ngày1/1/1970 làm mốc nhỏ nhất. Hàm
1545124470.91517524 sẽ trả về tổng số mili giây đã trôi qua tính từ ngày 1/1/1970.
Bài viết này được đăng tại [free tuts .net]
Xem ví dụ dưới đây để hiểu rõ hơn:
import time; #In ra tổng số mili giây kể từ ngày 1/1/1970 print[time.time[]]
Kết quả trả về tính đến thời điểm hiện tại:
1545124470.9151752
II. Cách lấy thời gian hiện tại - localtime[]
Để lấy thời gian hiện tại trên hệ thống thì ta sử dụng hàm localtime[]. Cách sử dụng rất đơn giản, bạn chỉ cần import module time và gọi hàm này một cách bình thường.
Xem ví dụ sau:
import time; #returns a time tuple print[time.localtime[time.time[]]]
Kết quả nó trả về là một tuple.
time.struct_time[tm_year=2018, tm_mon=12, tm_mday=18, tm_hour=15, tm_min=1, tm_sec=32, tm_wday=1, tm_yday=352, tm_isdst=0]
III. Time tuple là gì?
Time tuple là bộ các đơn vị thời gian, gồm 9 thông số như sau:
IndexAttributeValues0Year4 số nguyên[for example 2018]1Month1 đến 122Day1 đến 313Hour0 đến 234Minute0 đến 595Second0 đến 606Day of weak0 đến 67Day of year1 đến 3668Daylight savings-1, 0, 1 , or -1IV. Hàm asctime[] thay đổi format time
Bạn có thể thay đổi định dạng thời gian bằng cách sử dụng hàm
1545124470.91517525 năm trong module time. Nó sẽ trả về thời gian được định dạng của đối tượng time đang sử dụng hàm này.
import time; #Trả về định dạng time print[time.asctime[time.localtime[time.time[]]]]
Kết quả:
Tue Dec 18 15:31:39 2019
V. Hàm sleep[] trong Python
Hàm sleep[] trong Python được dùng để dừng thực thi chương trình trong một khoảng thời gian nhất định. Số thời gian bị hoãn phụ thuộc vào giá trị mà bạn truyền vào hàm này.
Đơn vị của tham số thời gian đầu vào tính bằng giây, có thể số nguyên hoặt số thực.
Ví dụ: Tạo vòng lặp, mỗi lần lặp cho nghỉ 1 giây.
import time for i in range[0,5]: print[i] #Mỗi lần lặp sẽ nghỉ 1 giây, sau đó in kết quả ra màn hình time.sleep[1]
VI. Module datetime trong Python
Module datetime cho phép ta tạo đối tượng thời gian và có thể tùy chỉnh theo ý mình. Đối tượng này được sử dụng rất nhiều trong thực tế. Ví dụ bạn làm lịch hẹn giờ thì chắc chắn phải dùng module date để lấy thời gian hiện tai, datetime để lấy thời gian hẹn, sau đó so sánh và xử lý hiển thị kết quả.
Tương tự, ta phải import datetime thì mới sử dụng các phương thức - hàm ở trong module này được.
Ví dụ: In ra thời gian hiện tại
import datetime; #Trả về object time hiện tại print[datetime.datetime.now[]]
Kết quả:
2018-12-18 16:16:45.462778
1. Tạo date object
Ta có thể tạo một date object bằng cách truyền giá trị ngày vào ba tham số của hàm datetime.
Như ví dụ dưới đây mình truyền vào 10/12/2018.
import datetime; print[datetime.datetime[2018,12,10]]
Hoặc truyền nhiều hơn 3 tham số:
1545124470.91517520
2. So sánh 2 ngày khác nhau
Để so sánh hai ngày hơn kém nhau thì ta có thể sử dụng các toán tử so sánh [>, >=,