Trong bài viết này, bạn sẽ học cách tạo một đối tượng DateTime từ một chuỗi [với sự trợ giúp của các ví dụ].
Video: Ngày và giờ ở Python
Phương thức strptime[]
tạo một đối tượng DateTime từ chuỗi & nbsp; đã cho.
Lưu ý: Bạn không thể tạo đối tượng datetime
từ mỗi chuỗi. Chuỗi cần phải ở một định dạng nhất định. You cannot create datetime
object from every string. The string needs to be in a certain format.
Ví dụ 1: Chuỗi thành đối tượng DateTime
from datetime import datetime
date_string = "21 June, 2018"
print["date_string =", date_string]
print["type of date_string =", type[date_string]]
date_object = datetime.strptime[date_string, "%d %B, %Y"]
print["date_object =", date_object]
print["type of date_object =", type[date_object]]
Khi bạn chạy chương trình, đầu ra sẽ là:
date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =
Strptime [] hoạt động như thế nào?
Phương thức lớp strptime[]
có hai đối số:
- Chuỗi [được chuyển đổi thành DateTime]
- Mã định dạng
Dựa trên mã chuỗi và mã định dạng được sử dụng, phương thức trả về đối tượng datetime
tương đương của nó.
Trong ví dụ trên:
Here,
date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =
0 - đại diện cho ngày trong tháng. Ví dụ: 01, 02, ..., 31Example: 01, 02, ..., 31date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =
1 - Tên tháng đầy đủ. Ví dụ: Tháng một, tháng 2, v.v.Example: January, February etc.date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =
2 - Năm trong bốn chữ số. Ví dụ: 2018, 2019, v.v.Example: 2018, 2019 etc.
Ví dụ 2: Chuỗi thành đối tượng DateTime
from datetime import datetime
dt_string = "12/11/2018 09:15:32"
# Considering date is in dd/mm/yyyy format
dt_object1 = datetime.strptime[dt_string, "%d/%m/%Y %H:%M:%S"]
print["dt_object1 =", dt_object1]
# Considering date is in mm/dd/yyyy format
dt_object2 = datetime.strptime[dt_string, "%m/%d/%Y %H:%M:%S"]
print["dt_object2 =", dt_object2]
Khi bạn chạy chương trình, đầu ra sẽ là:
dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32
Strptime [] hoạt động như thế nào?
Phương thức lớp strptime[]
có hai đối số:
Chuỗi [được chuyển đổi thành DateTime] | Mã định dạng | Dựa trên mã chuỗi và mã định dạng được sử dụng, phương thức trả về đối tượng datetime tương đương của nó.
|
Trong ví dụ trên: | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =0 - đại diện cho ngày trong tháng. Ví dụ: 01, 02, ..., 31 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =1 - Tên tháng đầy đủ. Ví dụ: Tháng một, tháng 2, v.v. |
date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =2 - Năm trong bốn chữ số. Ví dụ: 2018, 2019, v.v. | Ví dụ 2: Chuỗi thành đối tượng DateTime | Danh sách mã định dạng |
Bảng dưới đây hiển thị tất cả các mã định dạng mà bạn có thể sử dụng. | Chỉ thị | Nghĩa |
Thí dụ | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =3 | Tên viết tắt tên ngày trong tuần. |
Sun mon, ... | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =4 | Tên đầy đủ trong tuần. |
Chủ nhật thứ hai, ... | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =5 | Ngày trong tuần là một số thập phân. |
0, 1, ..., 6 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =0 | Ngày trong tháng dưới dạng số thập phân không. |
01, 02, ..., 31 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =7 | Ngày trong tháng dưới dạng số thập phân. |
1, 2, ..., 30 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =8 | Tên tháng viết tắt. |
Jan, tháng 2, ..., tháng 12 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =1 | Tên đầy đủ. |
Tháng một tháng hai, ... | 0 | Tháng dưới dạng số thập phân bằng không. |
01, 02, ..., 12 | 1 | Tháng như một số thập phân. |
1, 2, ..., 12 | 2 | Năm không có thế kỷ như một số thập phân số không. |
00, 01, ..., 99 | 3 | Năm không có thế kỷ như một số thập phân. |
0, 1, ..., 99 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =2 | Ngày trong tháng dưới dạng số thập phân. |
1, 2, ..., 30 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =8 | Tên tháng viết tắt. |
Jan, tháng 2, ..., tháng 12 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =1 | Tên đầy đủ. |
Tháng một tháng hai, ... | 0 | Tháng dưới dạng số thập phân bằng không. |
01, 02, ..., 12 | 1 | Tháng như một số thập phân. |
1, 2, ..., 12 | 2 | Tháng dưới dạng số thập phân bằng không. |
01, 02, ..., 12 | 1 | Tháng như một số thập phân. |
1, 2, ..., 12 | 2 | Năm không có thế kỷ như một số thập phân số không. |
00, 01, ..., 99 | 3 | Năm không có thế kỷ như một số thập phân. |
0, 1, ..., 99 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =2 | Năm không có thế kỷ như một số thập phân. |
0, 1, ..., 99 | date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object =2 | Năm với thế kỷ như một số thập phân. |
2013, 2019, v.v. | 5 | Giờ [đồng hồ 24 giờ] là một số thập phân bằng không. |
00, 01, ..., 23 | 6 | Giờ [đồng hồ 24 giờ] là một số thập phân. |
0, 1, ..., 23 | 7 | Giờ [đồng hồ 24 giờ] là một số thập phân. |
0, 1, ..., 23 | 7 | Giờ [đồng hồ 12 giờ] là một số thập phân bằng không. |
8 | Giờ [đồng hồ 12 giờ] là một số thập phân. | 1, 2, ... 12 |
9 | Locale từ AM hoặc PM. | Sáng, chiều |
dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:320 | Phút như một số thập phân bằng không. | 00, 01, ..., 59 |
dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32
1
Phút như một số thập phân.
from datetime import datetime
date_string = "12/11/2018"
date_object = datetime.strptime[date_string, "%d %m %Y"]
print["date_object =", date_object]
0, 1, ..., 59
ValueError: time data '12/11/2018' does not match format '%d %m %Y'
dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32
2 Python strftime[]