CodeGym /Các khóa học /Python SELF VI /Sử dụng module datetime

Sử dụng module datetime

Python SELF VI
Mức độ , Bài học
Có sẵn

1. Lấy ngày và giờ hiện tại

Để làm gì nhỉ?

Như mọi người biết, thời gian là tiền bạc. Trong lập trình, nó còn là kiểm soát, lập kế hoạch và tự động hóa. Ví dụ, nếu bạn muốn chạy một task vào một thời gian cụ thể hoặc log lại các sự kiện, bạn cần biết rằng thời gian không ngừng trôi, và làm sao để làm việc với nó.

Những điều cơ bản về datetime

Ok, tưởng tượng rằng chúng ta vừa bắt đầu làm việc với thư viện datetime. Không như việc lập trình tàu vũ trụ đâu, dễ như ăn bánh thôi! Bắt đầu bằng cách lấy ngày giờ hiện tại nhé:

Python

from datetime import datetime

# Lấy ngày giờ hiện tại
now = datetime.now()
print("Ngày giờ hiện tại:", now)

Code này đang nói rằng "Này datetime, cho tôi biết bây giờ là mấy giờ nhé!" Và điều hay ho là now() trả về một object datetime, chứa mọi thông tin về thời điểm hiện tại. Giống như một giáo sư biết hết mọi điều luôn!

Giờ local và UTC

Ah, UTC — giờ quốc tế kết nối tất cả chúng ta mà không cần quan tâm đến múi giờ. Nếu bạn muốn biết giờ chính xác trên Sao Hỏa (ừ thì, gần đúng thôi), thì bạn sẽ dùng UTC. Đây là cách lấy nó:

Python

# Lấy giờ hiện tại ở định dạng UTC
now_utc = datetime.utcnow()
print("Ngày giờ hiện tại ở UTC:", now_utc)

Bạn hỏi, sự khác biệt là gì? Giờ local sẽ bao gồm múi giờ của bạn, còn UTC là giờ chuẩn Greenwich, không phụ thuộc vào vị trí địa lý.

Trích xuất các thành phần ngày giờ

Đôi khi chúng ta không cần cả ngày giờ, chỉ cần vài phần thôi. Giống như gọi pizza mà chỉ lấy phô mai — không phải lúc nào cũng hợp lý, nhưng thỉnh thoảng lại cần:

Python

# Trích xuất các phần riêng lẻ của ngày giờ
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second

print(f"Bây giờ là {hour}:{minute}:{second} ngày {day}.{month}.{year}")

Với cách này, chúng ta có thể làm việc với từng phần của ngày giờ, ví dụ như để chúc mừng đồng nghiệp sinh nhật (tất nhiên nếu họ tự nhắc thôi).

Ví dụ ứng dụng ngày giờ hiện tại

Có những lúc bạn cần lập trình các sự kiện xảy ra trong các thời điểm khác nhau. Ví dụ, chúng ta thử viết một script đơn giản chúc mừng mọi người vào thứ 6 (ai mà không thích thứ 6 cơ chứ?).

Python

# Ví dụ sử dụng ngày giờ hiện tại để nhắc nhở hàng ngày
if now.weekday() == 4:  # Thứ 6
    print("Yeah! Hôm nay là thứ 6, thời gian để thư giãn!")
else:
    print("Chờ chút nhé, chưa tới thứ 6 đâu.")

Code này sử dụng phương thức weekday(), trả về số từ 0 đến 6 (trong đó 0 là thứ 2, còn 6 là chủ nhật), để kiểm tra hôm nay là ngày nào và nhắc nhở về cuối tuần sắp tới.

2. Làm việc với đối tượng datetime

Chúng ta cần biết không chỉ thời gian hiện tại, mà còn cách chuyển từ thời điểm này sang thời điểm khác qua các phép tính hoặc so sánh. Ví dụ, làm sao bạn tính được rằng bạn đã trễ buổi họp với đồng nghiệp bao lâu?

Python

# Ví dụ tính khoảng thời gian
from datetime import timedelta

# Tạo một ngày trong quá khứ
past_date = datetime(2023, 1, 1, 10, 0, 0)

# Tính khoảng thời gian giữa hiện tại và ngày trong quá khứ
difference = now - past_date
print(f"Kể từ ngày đó đã trôi qua {difference.days} ngày và {difference.seconds // 3600} giờ.")

Ở đây chúng ta tạo ra ngày trong quá khứ và so sánh với thời gian hiện tại. Đã bao nhiêu ngày từ năm mới nhỉ? Giờ thì bạn biết rồi đó!

3. Làm việc với múi giờ

Để làm việc với múi giờ trong datetime, chúng ta sử dụng thư viện pytz, cho phép chuyển đổi ngày giờ sang múi giờ mong muốn.

Ví dụ sử dụng pytz

Python

from datetime import datetime
import pytz

# Lấy ngày giờ hiện tại ở UTC
utc_now = datetime.now(pytz.utc)
print("Ngày giờ hiện tại (UTC):", utc_now)

# Chuyển sang múi giờ khác (ví dụ: US/Pacific)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("Ngày giờ hiện tại (Pacific Time):", pacific_now)

Kết quả:


Ngày giờ hiện tại (UTC): 2024-11-04 14:53:27.123456+00:00
Ngày giờ hiện tại (Pacific Time): 2024-11-04 06:53:27.123456-08:00
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION