Giới thiệu về làm việc với ngày và giờ
Hãy bắt đầu với một chút suy ngẫm: hãy tưởng tượng nếu máy tính không thể làm việc với ngày và giờ. Thật kinh khủng! Các thiết bị yêu thích của chúng ta sẽ trở nên hoàn toàn vô dụng trong việc lên kế hoạch và tự động hóa các công việc. Hãy cùng tìm hiểu, làm thế nào Python có thể giúp chúng ta không trễ các cuộc họp quan trọng và hỗ trợ tự động hóa các tác vụ lặp đi lặp lại.
Làm việc với ngày và giờ là một phần không thể thiếu của lập trình, đặc biệt khi nói đến tự động hóa. Hãy tưởng tượng một tình huống: bạn có các báo cáo cần được cập nhật mỗi giờ hoặc các lời nhắc cần phải nhắc bạn rằng đã đến lúc nghỉ ngơi (vâng, bạn đã ngồi trước màn hình 5 tiếng rồi!). Python cung cấp nhiều công cụ để làm việc với ngày và giờ mà chúng ta sẽ cùng khám phá trong bài giảng này.
1. Các module làm việc với ngày và giờ
Trong Python có sẵn một số module giúp dễ dàng làm việc với ngày và giờ. Chúng ta sẽ tập trung vào ba module chính: datetime, time và calendar.
-
datetime: có thể nói rằng hầu hết công việc với ngày và giờ sẽ được thực hiện bằng module này. Nó cung cấp các lớp để làm việc với ngày, giờ riêng lẻ, cũng như kết hợp chúng. -
time: module này cung cấp các hàm để làm việc với các biểu diễn của thời gian ở cấp thấp, thường là tương tác với thời gian của hệ thống. -
calendar: hỗ trợ bạn làm việc với lịch (ở đây thì dễ hiểu rồi nhỉ).
Các hàm và lớp cơ bản trong module datetime
Hãy cùng đi sâu vào module datetime và khám phá các thành phần chính của nó.
Lớp date
Lớp này được sử dụng để làm việc với ngày tháng. Nó cho phép đặt và chỉnh sửa năm, tháng, ngày mà không cần gắn chúng với thời gian.
from datetime import date
# Tạo đối tượng date
my_birthday = date(1990, 12, 25)
print("Ngày sinh nhật của tôi:", my_birthday)
Lớp time
Lớp này, như tên gọi của nó, chỉ làm việc với thời gian — giờ, phút, giây. Lý tưởng cho những trường hợp cần quản lý thời gian mà không liên quan đến ngày.
from datetime import time
# Tạo đối tượng time
meeting_time = time(14, 30) # 14:30
print("Giờ cuộc họp đã được đặt:", meeting_time)
Lớp datetime
Lớp linh hoạt nhất, kết hợp ngày và giờ thành một khối thống nhất.
from datetime import datetime
# Thời gian và ngày hiện tại
now = datetime.now()
print("Ngày và giờ hiện tại:", now)
2. Sử dụng module datetime để lấy ngày và giờ hiện tại
Lấy ngày và giờ hiện tại là nền tảng để lên kế hoạch và tự động hóa. Trong datetime có một số phương pháp tiện dụng để làm điều này.
Lấy ngày và giờ hiện tại
Nhờ vào các phương pháp datetime.now() và datetime.today(), bạn có thể dễ dàng lấy ngày và giờ hiện tại.
now = datetime.now()
print("Ngày và giờ hiện tại (now):", now)
today = datetime.today()
print("Ngày hiện tại (today):", today)
Làm việc với các đối tượng datetime
Đối tượng datetime cho phép bạn trích xuất các thành phần như năm, tháng, ngày và nhiều hơn nữa. Cũng cần nhớ đến sự khác biệt giữa thời gian địa phương và thời gian chuẩn quốc tế (UTC).
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"Hôm nay: {day}/{month}/{year}, và giờ: {hour}:{minute}:{second}")
Khi triển khai ứng dụng, hãy để ý đến sự khác biệt giữa thời gian địa phương và UTC, vì thế giới rất lớn và mỗi người đều có múi giờ của riêng mình!
3. Ví dụ về sử dụng ngày và giờ hiện tại trong các tác vụ thực tế
Giả sử bạn cần lấy dữ liệu từ một nguồn nào đó mỗi giờ. Điều này có thể dễ dàng tự động hóa bằng cách so sánh thời gian hiện tại với lần lấy trước. Ví dụ:
from datetime import timedelta
last_run = datetime.now() - timedelta(hours=1)
current_time = datetime.now()
# Nếu lần chạy cuối hơn một giờ trước
if current_time - last_run > timedelta(hours=1):
print("Đã đến lúc cập nhật dữ liệu!")
last_run = current_time
Đoạn mã này hiệu quả nhắc nhở chúng ta về sự cần thiết phải làm gì đó chỉ khi hơn một giờ đã trôi qua. Hãy chú ý sự thuận tiện của việc sử dụng timedelta để thực hiện các phép toán với thời gian.
GO TO FULL VERSION