CodeGym /Các khóa học /Python SELF VI /Thư viện datetime

Thư viện datetime

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

9.1 Làm việc với ngày và thời gian

Lập trình viên rất thường xuyên phải làm việc với ngày và thời gian trong chương trình của mình. Vì vậy không có gì ngạc nhiên khi trong Python có hai thư viện chuẩn cho những trường hợp này là datetimetime.

Thư viện datetime là một phần của thư viện chuẩn Python và cung cấp các lớp để làm việc với ngày và thời gian. Nó cho phép tạo, thao tác và định dạng ngày và thời gian, cũng như thực hiện các phép toán số học với chúng.

Các lớp chính của thư viện datetime

Lớp datetime.date

Lớp này đại diện cho ngày (năm, tháng, ngày) không có thời gian. Nó hữu ích để làm việc với các ngày trong lịch.

Ví dụ sử dụng:


import datetime

# Tạo đối tượng ngày
d = datetime.date(2023, 5, 24)
print(d)  # Xuất: 2023-05-24
            
# Lấy ngày hiện tại
today = datetime.date.today()
print(today)
            
# Truy cập thuộc tính năm, tháng và ngày
print(d.year)  # Xuất: 2023
print(d.month)  # Xuất: 5
print(d.day)  # Xuất: 24

Lớp datetime.time

Lớp này đại diện cho thời gian (giờ, phút, giây, microgiây) không có ngày. Nó hữu ích để làm việc với thời gian trong ngày.

Ví dụ sử dụng:


import datetime

# Tạo đối tượng thời gian
t = datetime.time(14, 30, 45)
print(t)  # Xuất: 14:30:45
            
# Truy cập thuộc tính giờ, phút và giây
print(t.hour)  # Xuất: 14
print(t.minute)  # Xuất: 30
print(t.second)  # Xuất: 45

Lớp datetime.datetime

Lớp này kết hợp ngày và thời gian (năm, tháng, ngày, giờ, phút, giây, microgiây). Nó hữu ích để làm việc với các thời điểm cụ thể.

Ví dụ sử dụng:


import datetime

# Tạo đối tượng ngày và thời gian
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # Xuất: 2023-05-24 14:30:45
        
# Lấy ngày và thời gian hiện tại
now = datetime.datetime.now()
print(now)
        
# Truy cập thuộc tính ngày và thời gian
print(dt.year)  # Xuất: 2023
print(dt.month)  # Xuất: 5
print(dt.day)  # Xuất: 24
print(dt.hour)  # Xuất: 14
print(dt.minute)  # Xuất: 30
print(dt.second)  # Xuất: 45

Lớp datetime.timedelta

Lớp này đại diện cho sự khác biệt giữa hai thời điểm, được biểu thị bằng ngày, giây và microgiây. Nó hữu ích để thực hiện các phép toán số học với ngày và thời gian.

Ví dụ sử dụng:


import datetime

# Tạo đối tượng timedelta
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # Xuất: 10 days, 5:30:00
        
# Thêm timedelta vào ngày
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # Xuất: 2023-06-03 20:00:00
        
# Trừ timedelta từ ngày
earlier_dt = dt - delta
print(earlier_dt)  # Xuất: 2023-05-14 09:00:00

4.2 Định dạng và phân tích ngày và thời gian

Thường thì chúng ta cần không chỉ làm việc với ngày mà còn phải chuyển đổi nó thành chuỗi theo một định dạng nhất định. Quá trình ngược lại, khi chúng ta chuyển đổi chuỗi thành đối tượng, thường được gọi là phân tích. Để thực hiện những thao tác này trong Python cũng có các lớp và phương thức riêng:

Phương thức strftime()

Phương thức strftime() được sử dụng để định dạng các đối tượng datetime thành chuỗi theo định dạng cho trước.

Ví dụ sử dụng:


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# Định dạng ngày và thời gian
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # Xuất: 2023-05-24 14:30:45
    
# Định dạng chỉ ngày
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # Xuất: 24-05-2023
    
# Định dạng chỉ thời gian
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # Xuất: 14:30:45

Phương thức strptime()

Phương thức strptime() được sử dụng để phân tích chuỗi thành các đối tượng datetime theo định dạng cho trước.

Ví dụ sử dụng:


import datetime

# Phân tích chuỗi thành đối tượng datetime
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # Xuất: 2023-05-24 14:30:45
    
# Phân tích chuỗi thành đối tượng date
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # Xuất: 2023-05-24
    
# Phân tích chuỗi thành đối tượng time
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # Xuất: 14:30:45

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

Như thực tế cho thấy, các dịch vụ của chúng ta được sử dụng bởi người dùng từ khắp nơi trên thế giới, và tiếc là, họ sống ở các quốc gia khác nhau và có múi giờ (timezone) khác nhau. Vì vậy, bạn cần phải biết cách làm việc với chúng nữa.

Và tất nhiên, trong Python có một lớp cho trường hợp này:

Lớp timezone

Lớp timezone từ module datetime cho phép làm việc với múi giờ.


import datetime

# Tạo đối tượng datetime với múi giờ UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # Xuất: 2023-05-24 14:30:45+00:00
        
# Chuyển đổi sang múi giờ khác
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # Xuất: 2023-05-24 23:30:45+09:00

Chúng tôi đã xem xét thư viện datetime một cách khá tổng quan, có thể nói là còn khá sơ lược. Trong tương lai, chúng ta sẽ trở lại với nó và học cách sử dụng nó cho các nhiệm vụ cụ thể hơn. Hiện tại, tôi chỉ muốn giới thiệu các bạn với nó và mở rộng, nói cách khác, góc nhìn của bạn về tập hợp các thư viện chuẩn.

Về bất kỳ thư viện nào, trước tiên bạn nên biết rằng nó tồn tại, và tưởng tượng được có thể làm gì với nó. Còn danh sách các hàm, tham số và tất cả các khả năng của chúng luôn có thể được rút ra từ tài liệu chính thức.

2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Sinh nhật.
Sinh nhật.
2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Timezone.
Timezone.
1
Khảo sát/đố vui
, cấp độ , bài học
Không có sẵn
Decorators
Decorators
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION