Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Hướng dẫn toàn diện về module datetime trong Python
Module datetime
là một module tích hợp sẵn trong Python, được sử dụng để làm việc với ngày và giờ. Python không cung cấp kiểu dữ liệu riêng cho ngày và giờ mà thay vào đó, module này cung cấp các lớp (class) để thao tác với các đối tượng ngày giờ.
6 lớp chính trong module datetime
trong Python
Module datetime
bao gồm 6 lớp hỗ trợ làm việc với các đối tượng ngày và giờ:
Lớp date
Lớp date
sử dụng lịch Gregory (Gregorian calendar) với các thuộc tính chính là năm (year), tháng (month), và ngày (day).
Ví dụ:
Bài viết này được đăng tại [free tuts .net]
import datetime # Tạo đối tượng ngày dt = datetime.date(2022, 2, 24) print(dt)
Kết quả:
2022-02-24
date()
: Hàm tạo (constructor) của lớpdate
nhận 3 tham số: năm, tháng, ngày.dt
: Đối tượng của lớpdate
.
Lấy ngày hiện tại và các thuộc tính:
from datetime import date # Lấy ngày hiện tại today = date.today() print("Ngày hiện tại:", today) print("Năm hiện tại:", today.year) print("Tháng hiện tại:", today.month) print("Ngày hiện tại:", today.day)
Kết quả:
Ngày hiện tại: 2022-02-24 Năm hiện tại: 2022 Tháng hiện tại: 2 Ngày hiện tại: 24
Lớp time
Lớp time
tập trung vào việc thao tác với thời gian trong ngày (không bao gồm ngày). Các thuộc tính bao gồm giờ (hour), phút (minute), giây (second), và microsecond.
Ví dụ tạo đối tượng time
:
from datetime import time # Không truyền tham số t1 = time() print("t1:", t1) # Truyền tham số giờ, phút, giây t2 = time(12, 11, 9) print("t2:", t2)
Kết quả:
t1: 00:00:00 t2: 12:11:09
Truy cập các thuộc tính:
from datetime import time t = time(6, 11, 12, 999) print("Giờ:", t.hour) print("Phút:", t.minute) print("Giây:", t.second) print("Microsecond:", t.microsecond)
Kết quả:
Giờ: 6 Phút: 11 Giây: 12 Microsecond: 999
Lớp datetime
Lớp datetime
kết hợp cả ngày và giờ, với đầy đủ các thuộc tính của hai lớp date
và time
.
Tạo đối tượng datetime
:
from datetime import datetime # Không truyền tham số thời gian dt1 = datetime(2022, 2, 24) print("dt1:", dt1) # Truyền tham số thời gian dt2 = datetime(2022, 2, 24, 11, 10, 36, 1214) print("dt2:", dt2)
Kết quả:
dt1: 2022-02-24 00:00:00 dt2: 2022-02-24 11:10:36.001214
Lấy thời gian hiện tại và các thuộc tính:
from datetime import datetime # Lấy thời gian hiện tại now = datetime.now() print("Ngày:", now.day) print("Tháng:", now.month) print("Năm:", now.year) print("Giờ:", now.hour) print("Phút:", now.minute) print("Giây:", now.second)
Lớp timedelta
Lớp timedelta
dùng để tính toán khoảng cách giữa hai ngày hoặc giờ.
Ví dụ:
from datetime import datetime, timedelta # Tạo đối tượng datetime date1 = datetime(2021, 6, 24) date2 = datetime(2020, 4, 20) # Hiệu số giữa hai ngày diff = date2 - date1 print("Hiệu số ngày:", diff) # Trừ đi 13 ngày date1 -= timedelta(days=13) print("Ngày sau khi trừ 13 ngày:", date1) # Cộng thêm 12 tuần date2 += timedelta(weeks=12) print("Ngày sau khi cộng 12 tuần:", date2)
Lớp tzinfo
Lớp tzinfo
là một lớp cơ sở trừu tượng, cung cấp thông tin về múi giờ và được sử dụng bởi các lớp datetime
và time
.
Lớp timezone
Lớp timezone
là một lớp con của tzinfo
, được định nghĩa bởi độ lệch so với giờ UTC.
Ví dụ:
from datetime import timezone, timedelta tz = timezone(offset=timedelta(hours=3)) print(tz)
Kết quả:
UTC+03:00
Chuyển đổi giữa chuỗi và đối tượng datetime trong Python
Từ datetime sang chuỗi (strftime
):
from datetime import datetime now = datetime.now() # Định dạng thành chuỗi now_str = now.strftime("%Y-%m-%d, %H:%M:%S") print(now_str)