Cách xử lý ngày tháng và thời gian trong Python với datetime
Xử lý ngày tháng và thời gian là một nhiệm vụ phổ biến trong lập trình và Python cung cấp một mô-đun tích hợp có tên là datetime
để làm việc với ngày tháng và thời gian. Mô-đun này cung cấp các lớp để thao tác ngày tháng, thời gian và khoảng thời gian, giúp thực hiện phép tính số học ngày tháng, định dạng ngày tháng và quản lý múi giờ dễ dàng hơn. Trong bài viết này, chúng ta sẽ khám phá cách sử dụng mô-đun datetime
để xử lý ngày tháng và thời gian hiệu quả trong Python.
Bắt đầu với datetime
Mô-đun datetime
cung cấp một số lớp, chẳng hạn như datetime.date
, datetime.time
, datetime.datetime
, datetime.timedelta
và datetime.tzinfo
. Các lớp này cho phép chúng ta làm việc với ngày tháng, thời gian và khoảng thời gian.
Để bắt đầu sử dụng mô-đun datetime
, bạn cần nhập mô-đun này:
import datetime
Làm việc với Ngày tháng
Bạn có thể tạo đối tượng ngày tháng bằng cách sử dụng lớp date
. Nó yêu cầu ba tham số: năm, tháng và ngày.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
Bạn cũng có thể truy cập vào từng thành phần riêng lẻ của ngày, chẳng hạn như năm, tháng và ngày:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
Làm việc với Times
Lớp time
cho phép bạn tạo một đối tượng thời gian. Nó yêu cầu giờ, phút, giây và micro giây (tùy chọn).
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
Tương tự như ngày tháng, bạn có thể truy cập vào từng thành phần riêng lẻ của đối tượng thời gian:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
Kết hợp Ngày và Giờ với datetime
Lớp datetime
kết hợp cả ngày và giờ thành một đối tượng duy nhất. Bạn có thể tạo đối tượng datetime
bằng cách truyền năm, tháng, ngày, giờ, phút, giây và micro giây (tùy chọn).
from datetime import datetime
# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime) # Output: 2023-09-04 14:30:45
Bạn có thể truy cập cả thành phần ngày và giờ của đối tượng datetime
:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
Lấy ngày và giờ hiện tại
Mô-đun datetime
cung cấp các phương pháp thuận tiện để lấy ngày, giờ hiện tại hoặc cả hai:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
Số học ngày tháng với timedelta
Lớp timedelta
biểu diễn khoảng thời gian, là sự khác biệt giữa hai ngày hoặc thời gian. Nó cho phép bạn thực hiện phép tính ngày, chẳng hạn như thêm hoặc trừ ngày khỏi một ngày.
from datetime import timedelta
# Create a timedelta object
delta = timedelta(days=7)
# Add 7 days to the current date
future_date = today + delta
print(future_date)
Bạn cũng có thể tính toán sự khác biệt giữa hai ngày:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
Định dạng Ngày và Giờ
Phương thức strftime()
cho phép bạn định dạng ngày hoặc giờ thành chuỗi. Phương thức này lấy mã định dạng để chỉ định định dạng mong muốn:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
Các mã định dạng phổ biến bao gồm:
%Y
- Năm (ví dụ: 2023)%m
- Tháng dưới dạng số thập phân có đệm số 0 (ví dụ: 09)%d
- Ngày trong tháng dưới dạng số thập phân có đệm số 0 (ví dụ: 04)%H
- Giờ (đồng hồ 24 giờ) dưới dạng số thập phân có đệm số 0 (ví dụ: 14)%M
- Phút dưới dạng số thập phân có đệm số 0 (ví dụ: 30)%S
- Giây dưới dạng số thập phân có đệm số 0 (ví dụ: 45)
Phân tích ngày từ chuỗi
Phương thức strptime()
cho phép bạn chuyển đổi một chuỗi thành đối tượng datetime
, dựa trên định dạng của chuỗi ngày:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
Làm việc với Múi giờ
Mô-đun datetime
hỗ trợ các đối tượng datetime
nhận biết múi giờ bằng cách sử dụng thư viện pytz
. Để làm việc với múi giờ, bạn cần cài đặt pytz
:
pip install pytz
Sau đó, bạn có thể gán múi giờ cho đối tượng datetime
:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
Phần kết luận
Module datetime
trong Python cung cấp các công cụ mạnh mẽ để xử lý ngày và giờ, bao gồm tạo, định dạng, phân tích cú pháp và thực hiện phép tính với các đối tượng ngày và giờ. Cho dù bạn cần thao tác ngày, làm việc với múi giờ hay định dạng ngày và giờ để hiển thị, module datetime
đều đáp ứng được nhu cầu của bạn.