Là kiểu dữ liệu chứa nhiều thành phần, gồm ngày, tháng,năm, giờ, phút, giây

Nếu tạo biến để lưu ngày tháng năm, một lập trình viên đã code
ngay=20
thang=10
nam=2025Theo bạn ổn hay không ? vì sao ?
Trả lời: không ổn, vì trong python đã hỗ trợ kiểu ngày, chuyên dùng để tính toán khoảng cách ngày, thống kê, tìm kiếm, nên làm như cách trên là một cách rời rạc.
Code lại theo kiểu DateTime
import datetime
d = datetime.date(2025, 2, 18)
print(d)
print(d.year, d.month, d.day)import datetime
d = datetime.date(2025, 2, 18)
print(d)
print(d.year, d.month, d.day)Với code trên, nhìn và hiểu từng dòng code
import datetime : Nạp mô-đun datetime → dùng để làm việc với ngày và giờ
datetime.date(...): Gọi lớp date trong datetime để tạo một ngày cụ thể
date(2025, 2, 18) : Tham số truyền vào: năm = 2025, tháng = 2, ngày = 18
d.year :Lấy phần năm trong biến d
d.month : Lấy phần tháng
d.day : Lấy phần ngày
date: Đại diện cho ngày (ngày, tháng, năm).
time: Đại diện cho thời gian (giờ, phút, giây, micro giây).
datetime: Kết hợp cả ngày và thời gian (ngày, tháng, năm, giờ, phút, giây, micro giây).
timedelta: Đại diện cho sự khác biệt giữa hai ngày/giờ.
Sơ đồ như sau module datetime
Module datetime
- Class: date
+ Hàm 1, Hàm 2 .... n
- Class: time
+ Hàm 1, Hàm 2 .... n
- Class: datetime
+ Hàm 1, Hàm 2 .... n
- Class: timedelta
+ Hàm 1, Hàm 2 .... n
Các hàm là chức năng ta cần dùng, ví dụ như lấy ngày hiện tại từ máy tính...
from datetime import date
today = date.today()
print("Hôm nay là ", today)today() là hàm nằm trong class date thuộc module datetime
Dùng để làm việc với ngày (năm, tháng, ngày)
import datetime
d = datetime.date(2025, 2, 18)
print(d)
print(d.year, d.month, d.day)Dùng để làm việc với giờ (giờ, phút, giây, mili-giây)
import datetime
t = datetime.time(14, 30, 15)
print(t)
print(t.hour, t.minute, t.second)Kết hợp cả ngày + giờ
import datetime
dt = datetime.datetime(2025, 2, 18, 14, 30, 15)
print(dt)
Có nhiều chức năng hữu ích như lấy hiện tại:
now = datetime.datetime.now()
print(now)Dùng để tính khoảng thời gian, cộng trừ ngày giờ
import datetime
today = datetime.date.today()
delta = datetime.timedelta(days=7)
next_week = today + delta
print("Tuần sau là:", next_week)
Để tạo một đối tượng date, bạn sử dụng lớp datetime.date(year, month, day).
import datetime
# Tạo một đối tượng date
today = datetime.date(2025, 2, 18)
print("Hôm nay là:", today) Dùng phương thức today() để lấy ngày hiện tại.
today = datetime.date.today()
print("Ngày hôm nay:", today)Để tạo một đối tượng datetime, bạn sử dụng lớp datetime.datetime(year, month, day, hour, minute, second).
import datetime
now = datetime.datetime(2025, 2, 18, 14, 30, 0)
print("Thời gian hiện tại là:", now)Dùng phương thức now() để lấy ngày và giờ hiện tại.
now = datetime.datetime.now()
print("Ngày và giờ hiện tại:", now)timedelta được sử dụng để tính toán sự khác biệt giữa hai ngày hoặc thêm bớt ngày giờ.
import datetime
today = datetime.date.today()
one_day_later = today + datetime.timedelta(days=1)
print("Ngày mai:", one_day_later)import datetime
# Lấy ngày và giờ hiện tại
now = datetime.datetime.now()
# In ra ngày hiện tại
print("Ngày hiện tại:", now.date())
# In ra giờ hiện tại
print("Giờ hiện tại:", now.time())
# Thêm 10 ngày vào ngày hiện tại
ten_days_later = now + datetime.timedelta(days=10)
print("Ngày sau 10 ngày:", ten_days_later.date()) Định dạng ngày giờ theo một chuỗi mẫu.
strftime là viết tắt của "string format time". Đây là một hàm trong lập trình, đặc biệt là trong Python, dùng để chuyển đổi đối tượng thời gian (time object) thành chuỗi (string) theo định dạng mà người dùng yêu cầu.
today = datetime.date.today()
formatted_date = today.strftime("%d/%m/%Y")
print("Ngày định dạng:", formatted_date)Cú pháp strftime trong Python được sử dụng để chuyển đổi một đối tượng datetime thành chuỗi với định dạng mà bạn chỉ định. Hàm strftime sử dụng các ký hiệu đặc biệt để định dạng ngày và giờ.
Cú pháp chung của strftime là:
datetime_object.strftime(format)
Trong đó:
datetime_object là một đối tượng datetime hoặc date (tạo từ module datetime).
format là chuỗi định dạng mà bạn muốn sử dụng.
Dưới đây là một số ký hiệu thường dùng trong strftime để định dạng ngày và giờ:
Các ký hiệu định dạng phổ biến trong strftime:
Đối với ngày tháng:
%Y: Năm đầy đủ (ví dụ: 2025)
%y: Hai chữ số cuối của năm (ví dụ: 25)
%m: Tháng (01 đến 12)
%d: Ngày trong tháng (01 đến 31)
%A: Tên đầy đủ của ngày trong tuần (ví dụ: Monday, Tuesday)
%a: Viết tắt của tên ngày trong tuần (ví dụ: Mon, Tue)
%B: Tên đầy đủ của tháng (ví dụ: January, February)
%b: Viết tắt của tên tháng (ví dụ: Jan, Feb)
Đối với giờ, phút, giây:
%H: Giờ theo định dạng 24 giờ (00 đến 23)
%I: Giờ theo định dạng 12 giờ (01 đến 12)
%M: Phút (00 đến 59)
%S: Giây (00 đến 59)
%p: AM/PM (ví dụ: AM, PM)
import datetime
# Tạo một đối tượng datetime
now = datetime.datetime.now()
# Định dạng ngày giờ theo yêu cầu
formatted_date = now.strftime("%A, %d %B %Y, %I:%M %p")
# In kết quả
print(formatted_date)Chuyển đổi chuỗi thành đối tượng datetime theo định dạng cho trước.
strptime là viết tắt của "string parse time", là hàm dùng để chuyển đổi một chuỗi (string) thành đối tượng thời gian (time object) theo định dạng mà người dùng chỉ định.
Cú pháp strptime
datetime.strptime(date_string, format)
date_string: Chuỗi chứa ngày tháng và thời gian cần chuyển đổi.
format: Định dạng ngày tháng, giờ mà chuỗi đầu vào có.
Ví dụ:
Giả sử bạn có chuỗi "2025-02-22 14:30:00", và bạn muốn chuyển nó thành một đối tượng datetime:
from datetime import datetime
date_string = "2025-02-22 14:30:00"
format = "%Y-%m-%d %H:%M:%S"
# Chuyển chuỗi thành đối tượng datetime
date_object = datetime.strptime(date_string, format)
print(date_object) Trong ví dụ trên:
%Y là năm (4 chữ số)
%m là tháng (2 chữ số)
%d là ngày (2 chữ số)
%H là giờ (theo định dạng 24 giờ)
%M là phút
%S là giây
Tìm kiếm:
Trong Python, kiểu dữ liệu ngày tháng năm (date) được xử lý chủ yếu bằng thư viện datetime. Thư viện này cung cấp các lớp giúp bạn làm việc với ngày tháng và giờ.