Nếu bạn có thể xác định các phân đoạn thực sự chứa thông tin ngày, phân tích chúng có thể khá đơn giản với Parsedatetime. Có một vài điều cần xem xét mặc dù cụ thể là ngày của bạn không có nhiều năm và bạn nên chọn một địa điểm.
>>> import parsedatetime
>>> p = parsedatetime.Calendar[]
>>> p.parse["December 15th"]
[[2013, 12, 15, 0, 13, 30, 4, 319, 0], 1]
>>> p.parse["9/18 11:59 pm"]
[[2014, 9, 18, 23, 59, 0, 4, 319, 0], 3]
>>> # It chooses 2014 since that's the *next* occurence of 9/18
Nó không phải lúc nào cũng hoạt động hoàn hảo khi bạn có văn bản không liên quan.
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
Thành thật mà nói, điều này có vẻ như là loại vấn đề đủ đơn giản để phân tích các định dạng cụ thể và chọn các định dạng nhất trong mỗi câu. Ngoài ra, nó sẽ là một vấn đề học máy tốt.
Trong bài viết này, chúng ta sẽ xem làm thế nào để trích xuất thời gian từ DateTime trong Python.
Trong Python, không có loại dữ liệu nào như DateTime, trước tiên, chúng tôi phải tạo dữ liệu của mình thành định dạng DateTime và sau đó chúng tôi sẽ chuyển đổi dữ liệu DateTime của chúng tôi thành thời gian. Một mô -đun Python được sử dụng để chuyển đổi dữ liệu thành định dạng DateTime, nhưng trong bài viết, chúng tôi sẽ sử dụng mô -đun DateTime để thực hiện nhiệm vụ này.
Cú pháp: DateTime.strptime []datetime.strptime[]
Tham số: & nbsp;
- arg: Nó có thể là số nguyên, float, tuple, series, dataFrame để chuyển đổi thành datetime dưới dạng kiểu dữ liệu của nó
- Định dạng: Đây sẽ là STR, nhưng mặc định là không có. Thời gian phân tích theo thời gian phân tích, ví dụ:%D/%m/%y, lưu ý rằng,%F F F sẽ phân tích tất cả các cách cho đến nano giây.
ví dụ:> định dạng = về%y%b%d%h%m%s
ví dụ: datetime_obj = datetime.strptime [Hồi 19022002101010,,%d%m%y%h%m%s,] # nó sẽ trả về đối tượng DateTime.
Trích xuất thời gian từ đối tượng DateTime
Trong phần này, chúng tôi sẽ trích xuất thời gian từ đối tượng DateTime.
Chúng tôi làm cho chuỗi của chúng tôi thành đối tượng DateTime, bây giờ chúng tôi trích xuất thời gian từ đối tượng DateTime của chúng tôi, bằng cách gọi phương thức .time []..time[] method.
Cú pháp: .time [].time[]
Trả về: Nó sẽ trả về thời gian từ đối tượng DateTimeIt will return the time from the datetime object
Dưới đây là việc thực hiện:
Python3
import
datetime
from
datetime
import
datetime
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
1>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 >>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
3>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
4>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 >>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
6>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
7>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
8>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
92001-08-24 10:10:10 10:10:100
2001-08-24 10:10:10 10:10:101
2001-08-24 10:10:10 10:10:102
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 2001-08-24 10:10:10 10:10:104
2001-08-24 10:10:10 10:10:100
2001-08-24 10:10:10 10:10:106
Output:
2001-08-24 10:10:10 10:10:10
Trích xuất giờ theo thời gian
Trong phần này, chúng tôi sẽ trích xuất giờ từ thời gian trích xuất từ đối tượng DateTime, tất cả 3 bước đều giống như trong ví dụ trước, trong ví dụ này, chúng tôi sẽ thêm phương thức .hour để trích xuất giờ từ đối tượng DateTime.
Chúng ta phải trích xuất thời gian, vì vậy phần tiếp theo là trích xuất giờ từ đối tượng DateTime, bằng cách gọi phương thức .hour.
Cú pháp: .hour.hour
Trả lại: Nó sẽ trả lại giờ từ dấu thời gian. : It will return the hour from timestamp.
Dưới đây là việc thực hiện:
Python3
import
datetime
from
datetime
import
datetime
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
1>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 >>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
3>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
4>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 >>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
62001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 03
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 06
2001-08-24 10:10:10 10:10:102
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 2001-08-24 10:10:10 10:10:104
2001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
import
2date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
import
5Trích xuất giờ theo thời gian
2001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
datetime
1date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
datetime
4Output:
date time : 2020-10-31 23:10:32 Time : 23:10:32 Hour : 23
Trong phần này, chúng tôi sẽ trích xuất giờ từ thời gian trích xuất từ đối tượng DateTime, tất cả 3 bước đều giống như trong ví dụ trước, trong ví dụ này, chúng tôi sẽ thêm phương thức .hour để trích xuất giờ từ đối tượng DateTime.
Chúng ta phải trích xuất thời gian, vì vậy phần tiếp theo là trích xuất giờ từ đối tượng DateTime, bằng cách gọi phương thức .hour.
Python3
import
datetime
from
datetime
import
datetime
Cú pháp: .hour
Trả lại: Nó sẽ trả lại giờ từ dấu thời gian.
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
7>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
8>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
92001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 03
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 06
2001-08-24 10:10:10 10:10:102
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 2001-08-24 10:10:10 10:10:104
2001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
import
2date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
import
5Trích xuất giờ theo thời gian
2001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
00date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
03Trong phần này, chúng tôi sẽ trích xuất giờ từ thời gian trích xuất từ đối tượng DateTime, tất cả 3 bước đều giống như trong ví dụ trước, trong ví dụ này, chúng tôi sẽ thêm phương thức .hour để trích xuất giờ từ đối tượng DateTime.
Chúng ta phải trích xuất thời gian, vì vậy phần tiếp theo là trích xuất giờ từ đối tượng DateTime, bằng cách gọi phương thức .hour.
Output: :
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 0
Cú pháp: .hour
Nếu ngày không rơi vào phạm vi, thì mã sẽ cung cấp cho chúng ta một ‘valueError. & nbsp; Để xác định thời gian mắc lỗi này, chúng tôi có thể làm là sử dụng các câu lệnh ngoại lệ và nói với người dùng rằng bạn đã nhập sai ngày và bạn không thể có thời gian kể từ ngày đó, vì ngày đó không bao giờ tồn tại, vì vậy Làm thế nào đến thời gian nên tồn tại trong ngày đó.
Python3
import
datetime
from
datetime
import
datetime
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
1>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 >>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
21>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
22>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
23>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
24>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
4>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
2 from
6>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
28>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
8>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
9>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
242001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 03
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 04
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 05
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 06
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
38>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
23>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
242001-08-24 10:10:10 10:10:100
date time : 3001-01-10 23:00:00 Time : 23:00:00 Minute : 0 Second : 02
>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
43>>> p.parse["9/19 LAB: Serial encoding"]
[[2014, 9, 19, 0, 15, 30, 4, 319, 0], 1]
>>> p.parse["9/19 LAB: Serial encoding [Section 2.2]"]
[[2014, 2, 2, 0, 15, 32, 4, 319, 0], 1]
9Output:
Bạn đã nhập ngày không chính xác, vui lòng nhập một ngày hợp lệ