Khi bạn lấy ngày từ dữ liệu thô, chúng thường ở dạng đối tượng chuỗi. Nhưng trong biểu mẫu này, bạn không thể truy cập các thuộc tính của ngày như năm, tháng, v.v.
Giải pháp cho vấn đề này là phân tích cú pháp [hoặc chuyển đổi] đối tượng chuỗi thành đối tượng ngày giờ để Python có thể nhận dạng nó là ngày tháng. Và sau đó bạn có thể trích xuất bất kỳ thuộc tính cơ bản nào mà bạn muốn lấy từ nó
Hướng dẫn này sẽ hướng dẫn bạn cách chuyển đổi một chuỗi thành đối tượng ngày giờ trong Python. Không chần chừ thêm nữa, chúng ta hãy bắt đầu
Mã định dạng ngày giờTrước khi tìm hiểu cách chuyển đổi chuỗi thành ngày tháng, bạn nên hiểu mã định dạng của đối tượng ngày giờ trong Python
Những điều kiện tiên quyết này sẽ hữu ích bất cứ khi nào bạn cần chuyển đổi một chuỗi thành một ngày. Chúng tôi sẽ xem xét một số mã định dạng phổ biến nhất mà bạn sẽ làm việc với bất kỳ lúc nào bạn muốn chuyển đổi chuỗi thành ngày tháng
Dưới đây là một số phổ biến nhất
- %Y — Giá trị này được sử dụng để biểu thị Năm và nằm trong khoảng từ 0001 đến 9999
- %m — Được sử dụng để biểu thị tháng trong năm và nằm trong khoảng từ 01 đến 12
- %d — Số này được sử dụng để biểu thị các ngày trong tháng và nằm trong khoảng từ 01 đến 31
- %H — Được sử dụng để biểu thị các giờ trong ngày ở định dạng 24 giờ và nằm trong khoảng từ 00 đến 23
- %I — Được sử dụng để biểu thị các giờ trong ngày ở định dạng 12 giờ và nằm trong khoảng từ 01 đến 12
- %M — Giá trị này được sử dụng để biểu thị số phút trong một giờ và nằm trong khoảng từ 00 đến 59
- %S — Giá trị này được sử dụng để biểu thị số giây trong một phút và cũng nằm trong khoảng từ 00 đến 59
Chúng tôi sẽ dừng ở đây đối với các mã định dạng ngày, nhưng còn nhiều mã khác nữa trong tài liệu Python. Bạn có thể bấm vào đây để xem thêm
Cách chuyển đổi một chuỗi thành một đối tượng DateTimeLưu ý rằng điều đầu tiên cần xem xét bất cứ khi nào chuyển đổi một chuỗi thành ngày là đảm bảo rằng chuỗi đó ở đúng định dạng
Để chuyển đổi một chuỗi thành một ngày, nó phải đáp ứng các điều kiện sau
- Đầu tiên, mỗi phần tử trong chuỗi phải được phân tách với các phần tử khác bằng dấu cách, chữ cái hoặc ký hiệu như / & , % # - v.v.
- Phần tử trong chuỗi được phân tích thành năm, tháng hoặc ngày phải có cùng độ dài với mã định dạng. Phần tử trong chuỗi không được vượt quá phạm vi của mã định dạng. Ví dụ: mã %Y yêu cầu 4 số được chuyển thành năm và phạm vi của nó là 0001 – 9999 [ví dụ: 09 sẽ không hoạt động – bạn cần 2009]
Hãy xem xét một số ví dụ về chuyển đổi chuỗi sang ngày. Đầu tiên, chúng tôi sẽ chuyển đổi chuỗi "2019/08/09" thành ngày
Chúng ta cần nhập thư viện datetime bằng Python để có thể đạt được điều này. Chúng ta có thể làm điều đó bằng cách gõ như sau
from datetime import datetime
date_string = "2018/08/09"
format = %Y/%m/%d #specifify the format of the date_string.
date = datetime.strptime[date_string, format]
print[date]
Hãy xem lại đoạn mã trên để đảm bảo rằng chúng ta hiểu điều gì đang xảy ra
Biến định dạng khai báo định dạng của chuỗi ngày sẽ được chuyển đến trình phân tích cú pháp [hàm sẽ giúp chúng ta chuyển đổi ngày]. Chúng ta phải biết định dạng trước, đó là trước khi chúng ta chuyển nó đến trình phân tích cú pháp
Trong trường hợp này, chuỗi có định dạng "2019/08/09"
Phần tử đầu tiên trong chuỗi đại diện cho một năm có mã định dạng là %Y
. Sau đó, chúng tôi có dấu gạch chéo lên theo sau tháng, mã định dạng là %m
. Sau đó, chúng ta có một dấu gạch chéo khác và cuối cùng là ngày có mã định dạng là %d
Do đó, chúng ta phải bao gồm ký hiệu dấu gạch chéo lên trong biến định dạng giống như cách nó xuất hiện trong chuỗi. Nếu mọi thứ được thực hiện chính xác, định dạng sẽ là "%Y/% m/%d."
Phương thức datetime.strptime
là trình phân tích cú pháp sẽ giúp chúng tôi chuyển đổi date_string
mà chúng tôi đã chuyển thành ngày tháng. Nó yêu cầu hai tham số. chuỗi ngày và định dạng
Khi chúng ta in nó sau đó, nó sẽ trông như thế này
Chúng tôi có thể quyết định truy xuất bất kỳ thuộc tính nào chúng tôi muốn từ nó. Ví dụ: nếu chúng tôi chỉ muốn lấy năm, chúng tôi có thể làm điều đó bằng cách nhập
from datetime import datetime
date_string = "2018-11-15T02:18:49Z"
format = "%Y-%m-%dT%H:%M:%SZ
date = datetime.strptime[date_string, format]
print[date]
0 và nó sẽ in ra chỉ nămBây giờ chúng ta đã hiểu điều đó, hãy xem thêm một ví dụ phức tạp hơn ví dụ trên
Ví dụ – cách chuyển đổi một chuỗi thành một ngày
Chúng tôi sẽ chuyển đổi đối tượng chuỗi này thành một ngày.
from datetime import datetime
date_string = "2018-11-15T02:18:49Z"
format = "%Y-%m-%dT%H:%M:%SZ
date = datetime.strptime[date_string, format]
print[date]
1Bây giờ nhìn bề ngoài, chúng ta có thể thấy rằng chuỗi ngày này có năm, tháng, ngày, giờ, phút và giây. Vì vậy, tất cả những gì chúng ta cần làm là tạo định dạng phù hợp và các ký hiệu trong đó
from datetime import datetime
date_string = "2018-11-15T02:18:49Z"
format = "%Y-%m-%dT%H:%M:%SZ
date = datetime.strptime[date_string, format]
print[date]
Chúng ta có thể thấy rằng không có gì quá phức tạp về nó. Chỉ cần làm theo định dạng cho từng phần của ngày và cũng chuyển vào bất kỳ ký hiệu hoặc chữ cái tương ứng nào bạn tìm thấy trong chuỗi ngày
Đừng để bị phân tâm bởi các ký hiệu hoặc chữ cái trong chuỗi. Nếu bạn làm mọi thứ chính xác và in nó, bạn sẽ có một cái gì đó như thế này
Đảm bảo rằng bạn không nhầm lẫn mã định dạng %m
với
from datetime import datetime
date_string = "2018-11-15T02:18:49Z"
format = "%Y-%m-%dT%H:%M:%SZ
date = datetime.strptime[date_string, format]
print[date]
1. %m
nhỏ được sử dụng trong nhiều tháng trong khi from datetime import datetime
date_string = "2018-11-15T02:18:49Z"
format = "%Y-%m-%dT%H:%M:%SZ
date = datetime.strptime[date_string, format]
print[date]
1 lớn được sử dụng trong vài phútKết luận và tìm hiểu thêmBây giờ chúng ta đã đi đến phần cuối của hướng dẫn này. Bạn đã học cách chuyển đổi một chuỗi thành định dạng ngày tháng
Khi bạn tìm hiểu các mã định dạng, bạn sẽ sẵn sàng. Chỉ cần đảm bảo rằng bạn tuân thủ các nguyên tắc quy định loại chuỗi nào có thể được chuyển đổi
Chẳng hạn, bạn phải nhớ rằng chuỗi phải được phân tách bằng thứ gì đó có thể là dấu cách, chữ cái hoặc ký hiệu. Ngoài ra, phạm vi chuỗi không được lớn hơn hoặc nhỏ hơn phạm vi của mã định dạng
Cảm ơn bạn đã đọc
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Tôi là một nhà khoa học dữ liệu nhiệt tình, thích phá vỡ và sửa chữa những thứ liên quan đến dữ liệu, đồng thời quan tâm đến dữ liệu một cách rõ ràng để cung cấp cho tôi thông tin chi tiết về những gì nó đang miêu tả
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu