Phân tích cú pháp ngày giờ 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ừ 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 DateTime

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 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

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

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ăm

Bâ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]
1

Bâ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út

Kết luận và tìm hiểu thêm

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

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

Ibrahim Abayomi Ogunbiyi

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

phân tích ngày giờ là gì?

Ngày. parse[] Ngày. parse[] phân tích cú pháp một chuỗi đại diện của một ngày và trả về số mili giây kể từ ngày 1 tháng 1 năm 1970, 00. 00. 00 UTC hoặc NaN nếu chuỗi không được nhận dạng hoặc trong một số trường hợp, chứa các giá trị ngày không hợp lệ [e. g. 31-02-2015].

Phân tích ngày trong Python là gì?

Hàm phân tích cú pháp của nó có thể tìm ra định dạng của một chuỗi mà không cần phải chỉ định định dạng như bạn làm với datetime. strptime . từ dateutil. trình phân tích cú pháp nhập phân tích cú pháp dt = parse['Mon Feb 15 2010'] print[dt] # datetime. ngày giờ [2010, 2, 15, 0, 0] in [dt. strftime['%d/%m/%Y']] # 15/02/2010.

Dấu thời gian [] Python là gì?

Dấu thời gian trong Python là gì? . Trong Python, chúng ta có thể lấy dấu thời gian của một sự kiện với độ chính xác là mili giây. Định dạng dấu thời gian trong Python trả về thời gian đã trôi qua từ thời gian kỷ nguyên được đặt thành 00. 00. 00 UTC ngày 1 tháng 1 năm 1970. the date and time of occurrence of an event. In Python we can get the timestamp of an event to an accuracy of milliseconds. The timestamp format in Python returns the time elapsed from the epoch time which is set to 00:00:00 UTC for 1 January 1970.

Chủ Đề