1. Định dạng ngày giờ
Chào mừng bạn đến với bài giảng thứ ba về làm việc với ngày giờ trong Python! Hôm nay, chúng ta sẽ thảo luận một chủ đề cực kỳ quan trọng, giúp các báo cáo và logs của bạn không chỉ tiện dụng mà còn đẹp mắt — đó là định dạng ngày giờ. Làm cho báo cáo của bạn đẹp và dễ dùng, vì chẳng ai thích bừa bộn, ngay cả trong code!
Bạn đã bao giờ tự hỏi tại sao ngày tháng trong một số báo cáo lại trông khó hiểu như vậy chưa? Nó giống như bạn phải lựa chọn giữa các tiêu chuẩn: chọn ISO 8601 để gây ấn tượng với đồng nghiệp, hay giữ mọi thứ ở các định dạng quen thuộc? Hãy cùng tìm hiểu cách dùng Python để định dạng ngày giờ một cách gọn gàng, khiến bạn trông như một lập trình viên "biết mọi thứ".
Trong thế giới Python, có một method tuyệt vời là strftime(), cho phép bạn chuyển đổi các đối tượng datetime thành chuỗi, định dạng chúng theo ý muốn của bạn. Hãy bắt đầu với cú pháp cơ bản, sau đó xem qua một vài ví dụ về định dạng.
from datetime import datetime
# Lấy ngày giờ hiện tại
now = datetime.now()
# Định dạng ngày giờ hiện tại thành chuỗi dễ đọc
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("Ngày giờ hiện tại:", formatted_date)
Các mã định dạng hay dùng:
%Y: Năm đầy đủ (ví dụ: 2023)%m: Tháng dưới dạng số (ví dụ: 01 cho tháng Một)%d: Ngày của tháng (ví dụ: 01 cho ngày đầu tiên trong tháng)%H: Giờ theo định dạng 24 giờ%M: Phút%S: Giây
Giờ thì chúng ta đã biết cách chuyển đổi ngày giờ, hãy chọn định dạng nào phù hợp với ứng dụng của chúng ta. Và bạn có biết rằng trong thế giới lập trình, nếu bạn không biết định dạng ngày tháng nào được dùng, bạn có thể viết cả một cuốn sách trước khi tìm ra cái phù hợp?
Ví dụ định dạng cho logs và báo cáo
Định dạng không chỉ về cái đẹp. Nó còn là việc cung cấp thông tin dễ đọc cho người khác. Các ví dụ áp dụng định dạng có thể đa dạng:
- Logs tệp:
Nếu script của bạn ghi sự kiện vào file log, thì thường bạn cần ghi lại thời gian của các sự kiện. Điều này không chỉ giúp theo dõi cách script hoạt động mà còn giúp debug dễ dàng hơn.
Pythonlog_time = now.strftime("%Y-%m-%d %H:%M:%S") log_entry = f"[{log_time}] Sự kiện: script bắt đầu chạy." print(log_entry) - Báo cáo và tài liệu:
Nếu bạn tạo báo cáo PDF hoặc Excel, có ngày được định dạng trong header hay footer có thể là một lợi thế lớn.
Pythonreport_date = now.strftime("%d.%m.%Y") print(f"Báo cáo được tạo vào ngày: {report_date}")
Sự linh hoạt trong định dạng
Bạn có thể kết hợp các mã định dạng để tạo hầu hết bất kỳ định dạng nào bạn muốn.
Giả sử bạn cần định dạng kiểu như trong các bộ phim cũ, để gây ấn tượng với sếp của bạn:
vintage_format = now.strftime("%A, %B %d, %Y at %I:%M %p")
print("Ngày phong cách cổ điển:", vintage_format)
Ở đây các mã %A, %B, %I, %p được dùng để hiển thị đầy đủ tên ngày trong tuần, tháng, giờ theo 12 giờ và chỉ định AM/PM. Đôi khi chút phong cách cổ điển cũng làm cho các báo cáo hiện đại thú vị hơn!
Các lỗi thường gặp và cách tránh
Khi nói về định dạng, một lỗi phổ biến là dùng sai mã định dạng. Ví dụ, nhầm chữ cái nhỏ m với chữ lớn M khi hiển thị phút hoặc tháng có thể dẫn đến kết quả hài hước. Những lúc như vậy, nếu các mã không hoạt động đúng, formatting cơ bản có thể biến thành một chuỗi lỗi hài hước.
Hãy luôn kiểm tra định dạng của bạn với tài liệu Python strftime() và strptime(), nếu bạn có sự nghi ngờ về cú pháp.
Ứng dụng thực tế của định dạng
Hãy tưởng tượng bạn viết một script thu thập thống kê từ một website mỗi giờ. Tất cả dữ liệu được lưu vào CSV, và mỗi file được đặt tên theo ngày giờ khi thu thập dữ liệu. Đây là một ví dụ cách bạn có thể thực hiện:
import os
def save_data(data):
file_time = datetime.now().strftime("%Y%m%d_%H%M%S")
file_name = f"data_{file_time}.csv"
# Thay vì os, chia logic kinh doanh của bạn để ghi dữ liệu
print(f"Dữ liệu được lưu vào tệp: {file_name}")
# Mô phỏng dữ liệu và gọi hàm
dummy_data = "một số thông tin hữu ích"
save_data(dummy_data)
Lưu file với ngày tháng trong tên không chỉ giúp tổ chức dữ liệu dễ dàng mà còn giúp tìm kiếm nhanh khi cần.
Định dạng ngày giờ là một kỹ năng mở ra nhiều cơ hội trong thế giới tự động hóa. Script của bạn sẽ chính xác hơn, báo cáo của bạn — dễ hiểu hơn, và điều đó còn đem lại niềm vui cho mắt nhìn. Ai mà biết chỉ một việc định dạng thôi cũng có thể mang lại nhiều cảm hứng thế này chứ?
Bài giảng hôm nay kết thúc tại đây. Đừng quên thực hành các định dạng khác nhau, tạo các báo cáo và logs độc đáo của riêng bạn. Hẹn gặp lại trong buổi học kế tiếp, nơi chúng ta sẽ khám phá các khoảng thời gian và cách chúng giúp tự động hóa các tác vụ theo thời gian.
GO TO FULL VERSION