HomeLập trìnhPythonCách chuyển đổi...

Cách chuyển đổi chuỗi thành đối tượng ngày giờ trong Python


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ừ nữa, chúng ta hãy bắt đầu.

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.

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 — Giá trị 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 — Giá trị này đượ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 — Giá trị này đượ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.
Đọc thêm  Giá trị tuyệt đối của Python – Hướng dẫn Python abs

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.

Lư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 tháng 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 từ chuỗi sang ngày. Trước 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.

Đọc thêm  Cách bắt đầu giao dịch theo thuật toán bằng Python

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ó một dấu gạch chéo tiếp 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 mà 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 pháp datetime.strptime là trình phân tích cú pháp sẽ giúp chúng tôi chuyển đổi date_string chúng tôi chuyển vào nó như một ngày. Nó yêu cầu hai tham số: chuỗi ngày và định dạng.

Khi chúng tôi in nó sau đó, nó sẽ trông như thế này.

hình ảnh-199
Hình ảnh của tác giả

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 date.year và nó sẽ in ra chỉ trong năm.

Bây giờ chúng ta đã hiểu điều đó, hãy xem xét 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: "2018-11-15T02:18:49Z".

Bây giờ nhìn qua, 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 thích 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 tuân 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.

Đọc thêm  Python JSON – Cách chuyển đổi chuỗi thành JSON

Đừ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ứ một cách chính xác và in nó, bạn sẽ có một cái gì đó như thế này:

hình ảnh-200

Hãy chắc chắn rằng bạn không nhầm lẫn mã định dạng %m với %M. cái nhỏ %m được sử dụng trong nhiều tháng trong khi lớn %M được sử dụng trong vài phút.

Bâ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.

Sau khi bạn tìm hiểu các mã định dạng, bạn sẽ sẵn sàng sử dụ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.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status