Chuyển đổi 01 thành 1 trong python

Dữ liệu có thể được biểu diễn dưới nhiều dạng khác nhau - và một cách thuận tiện để biểu thị ngày và giờ là các chuỗi. Tuy nhiên, để làm việc với những ngày và giờ này theo kiểu số học [chẳng hạn như tính chênh lệch múi giờ, thêm hoặc bớt thời gian, v.v. ] - chúng ta cần chuyển đổi chúng thành đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8

Một trong những nguồn phổ biến nhất của thời gian biểu định dạng chuỗi là các API REST trả về các chuỗi bất khả tri, sau đó chúng ta có thể chuyển đổi sang các định dạng khác

Ngoài ra - múi giờ là một vấn đề đau đầu phổ biến khi làm việc với các đối tượng ngày giờ, vì vậy chúng ta cũng cần phải suy nghĩ về điều đó trong khi chuyển đổi

Trong hướng dẫn này - chúng ta sẽ xem xét cách chuyển đổi ngày/giờ chuỗi thành đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 trong Python, sử dụng mô-đun
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 tích hợp, nhưng cũng có các mô-đun của bên thứ ba như
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
1,
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
2 và Maya, chiếm

Mô-đun datetime bao gồm ba loại đối tượng khác nhau.

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
3,
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
4 và
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8. Đối tượng
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
3 giữ ngày,
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
4 giữ thời gian và
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 giữ cả ngày và giờ

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
1

Chạy mã này sẽ dẫn đến

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
2

Khi không có định dạng tùy chỉnh nào được cung cấp, định dạng chuỗi mặc định được sử dụng, tôi. e. định dạng cho "2022-12-01 10. 27. 03. 929149" ở định dạng ISO 8601 [YYYY-MM-DDTHH. MM. SS. mmmmmm]. Nếu chuỗi đầu vào của chúng tôi để tạo một đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 có cùng định dạng ISO 8601 hoặc nếu bạn biết trước định dạng mà bạn sẽ nhận được, thì chúng tôi có thể dễ dàng phân tích nó thành một đối tượng
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8

Chạy nó sẽ in ngày, giờ và ngày giờ

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149

Ở đây, chúng tôi sử dụng phương thức

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
61, chấp nhận hai đối số

  • Ngày định dạng chuỗi
  • Định dạng của đối số đầu tiên

Chỉ định định dạng như thế này làm cho việc phân tích cú pháp nhanh hơn nhiều vì

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 không cần phải thử và tự giải thích định dạng, điều này tốn kém hơn nhiều về mặt tính toán. Giá trị trả về thuộc loại
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8

Trong ví dụ của chúng tôi,

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
64 là chuỗi đầu vào và
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
65 là định dạng của chuỗi ngày của chúng tôi. Giá trị
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 được trả về được lưu dưới dạng
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
67

Vì đây là một đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 nên chúng ta có thể gọi trực tiếp các phương thức
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
69 và
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
50 trên nó. Như bạn có thể thấy từ đầu ra, nó in phần 'ngày' và 'thời gian' của chuỗi đầu vào

Định dạng mã thông báo

Bạn nên dành một chút thời gian để hiểu các mã thông báo định dạng -

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
65 từ trước đó

Mỗi mã thông báo đại diện cho một phần khác nhau của thời gian ngày, như ngày, tháng, năm, ngày trong tháng hoặc tuần, v.v. Danh sách mã thông báo được hỗ trợ đủ rộng để cho phép định dạng khác nhau. Một số cái thường được sử dụng, mà chúng tôi cũng đã sử dụng trước đó là

  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    52. Năm [4 chữ số]
  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    53. Tháng
  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    54. ngày trong tháng
  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    55. Giờ [24 giờ]
  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    56. Phút
  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    57. giây
  • Date: 2022-12-01
    Time: 10:27:03.929149
    Date-time: 2022-12-01 10:27:03.929149
    
    58. Micro giây

Ghi chú. Tất cả các mã thông báo này, ngoại trừ năm, dự kiến ​​sẽ không được đệm [tôi. e. Tháng 8 là tháng thứ 8 và không được đệm thành

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
59]

Nếu định dạng của một chuỗi đã biết, nó có thể dễ dàng được phân tích cú pháp thành một đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 bằng cách sử dụng
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
61. Chúng ta hãy xem một ví dụ không tầm thường dịch từ định dạng này sang định dạng khác

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]

Chuỗi đầu vào có một định dạng - "Jul 17 2022 9. 20 giờ sáng". Khi biết định dạng này, chúng tôi đã ánh xạ các phần tử cấu thành sang định dạng ISO 8601 và chuyển đổi nó thành đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
6

Dưới đây là danh sách ngắn các mốc thời gian định dạng chuỗi phổ biến và các định dạng tương ứng của chúng cho

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
61

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
5

Bạn có thể phân tích cú pháp chuỗi ngày-giờ ở bất kỳ định dạng nào - miễn là bạn sử dụng đúng chuỗi mã thông báo định dạng cho đầu vào mà bạn đang nhận

Xử lý ngày giờ trở nên phức tạp hơn trong khi xử lý múi giờ. Tất cả các ví dụ trên cho đến nay đều ngây thơ với múi giờ. Chúng được gọi là đối tượng datetime ngây thơ

Tuy nhiên, các đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 chứa một trường chính xác để lưu trữ dữ liệu liên quan đến múi giờ -
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
35

Trường

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
35 có nghĩa là một đối tượng
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
37, biểu thị thông tin múi giờ. Đó là
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
38 theo mặc định và biểu thị rằng đối tượng datetime không có múi giờ. Một thư viện bên ngoài rất phổ biến để xử lý các múi giờ là
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
39. Bạn cũng có thể đặt các đối tượng PyTz làm trường
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
35

Nếu bạn chưa có - hãy cài đặt qua

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
3

Sử dụng PyTz, chúng tôi có thể tạo một mỏ neo cho thời gian biểu nhận biết múi giờ, chẳng hạn như UTC

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
0

đầu ra

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
1

Bây giờ không còn là 11 giờ sáng mà là 2 giờ sáng, vì chúng tôi đã đặt múi giờ cách đây vài giờ. Điều này thay đổi múi giờ của datetime

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
01 là sự khác biệt giữa thời gian hiển thị và thời gian UTC với tư cách là điểm neo điều phối toàn cầu. Chúng tôi đã đặt thời gian ở UTC, vì vậy phần bù là
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
02. Đây là một đối tượng nhận biết múi giờ

Tương tự, chúng ta có thể chuyển đổi cách hiểu của cùng một ngày giờ giữa các múi giờ. Hãy chuyển đổi một chuỗi, chẳng hạn như "2022-06-29 17. 08. 00" thành một ngày giờ và sau đó bản địa hóa nó thành múi giờ "America/New_York"

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
4

Ghi chú. Bản địa hóa biến một ngày giờ không có múi giờ thành một ngày giờ nhận biết múi giờ và coi múi giờ là múi giờ cục bộ. Do đó, ngày giờ vẫn giữ nguyên, nhưng với múi giờ khác, nó không còn đại diện cho cùng một thời điểm không bị ràng buộc từ các múi giờ

Chúng tôi nhận được cùng một giá trị ngày giờ, bù đắp bằng -04. 00 so với thời gian UTC

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
20

17. 08 ở Tokyo không cùng thời điểm với 17. 08 ở New York. 17. 08 ở Tokyo là 3. 08 ở New York

Làm cách nào để tìm tất cả các mã/bí danh múi giờ?

Để tìm tất cả các múi giờ có sẵn, hãy kiểm tra trường

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
03, đây là danh sách tất cả các múi giờ có sẵn

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
21

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
22

Chúng ta có thể chuyển đổi múi giờ của một đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 nhận biết múi giờ từ vùng này sang vùng khác, thay vì bản địa hóa một ngày giờ ngây thơ theo múi giờ thông qua lăng kính của một số múi giờ

Điều này khác với bản địa hóa, vì bản địa hóa biểu thị một thời điểm khác, nhưng việc chuyển đổi múi giờ của một đối tượng biểu thị cùng một thời điểm, thông qua một lăng kính khác

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
23

Đầu tiên, chúng tôi đã tạo một đối tượng datetime với thời gian hiện tại và đặt nó làm múi giờ "America/New_York". Sau đó, sử dụng phương pháp

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
05, chúng tôi đã chuyển đổi múi giờ
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 này thành "Châu Âu/London". Cả hai
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 sẽ in các giá trị khác nhau, sử dụng phần bù UTC làm liên kết tham chiếu giữa chúng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
24

2. 24 ngày hôm sau ở Luân Đôn là cùng thời điểm với 21. 24 ngày hôm trước ở New York vì London đi trước 5 giờ

Đúng như dự đoán, ngày giờ khác nhau vì chúng cách nhau khoảng 5 giờ

Mô-đun

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 của Python có thể chuyển đổi tất cả các loại chuỗi khác nhau thành đối tượng
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8. Nhưng vấn đề chính là để làm được điều này bạn cần tạo chuỗi mã định dạng phù hợp mà
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
61 có thể hiểu được. Tạo chuỗi này mất thời gian và khiến mã khó đọc hơn

Thay vào đó, chúng ta có thể sử dụng các thư viện của bên thứ ba khác để dễ dàng hơn

Trong một số trường hợp, các thư viện của bên thứ ba này cũng có hỗ trợ tích hợp sẵn tốt hơn để thao tác và so sánh thời gian ngày tháng và một số thư viện thậm chí còn tích hợp múi giờ, vì vậy bạn không cần phải thêm gói PyTz bổ sung

Chúng ta hãy xem xét một số thư viện trong các phần sau

Mô-đun dateutil là phần mở rộng của mô-đun

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8. Một lợi thế là chúng ta không cần chuyển bất kỳ mã phân tích cú pháp nào để phân tích chuỗi

Để tự động chuyển đổi một chuỗi thành datetime mà không cần mã thông báo định dạng bằng Python's

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
1

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
25

Hàm

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
13 này sẽ tự động phân tích cú pháp chuỗi. Bạn không cần phải bao gồm bất kỳ chuỗi định dạng nào. Hãy thử phân tích các loại chuỗi khác nhau bằng cách sử dụng
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
1

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
26

đầu ra

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
27

Bạn có thể thấy rằng hầu hết mọi loại chuỗi đều có thể được phân tích cú pháp dễ dàng bằng cách sử dụng mô-đun

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
1

Mặc dù điều này thuận tiện, nhưng hãy nhớ lại từ trước rằng việc phải dự đoán định dạng làm cho mã chậm hơn nhiều, vì vậy nếu mã của bạn yêu cầu hiệu suất cao thì đây có thể không phải là cách tiếp cận phù hợp cho ứng dụng của bạn

Maya cũng giúp dễ dàng phân tích chuỗi và thay đổi múi giờ. Để dễ dàng chuyển đổi một chuỗi bằng Python's Maya

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
28

đầu ra

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
29

Để chuyển đổi thời gian sang múi giờ khác

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
0

đầu ra

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
1

Bây giờ không phải là dễ sử dụng?

đầu ra

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
2

Như bạn có thể thấy, tất cả các định dạng ngày đã được phân tích cú pháp thành công

Nếu chúng tôi không cung cấp thông tin múi giờ thì nó sẽ tự động chuyển đổi thành UTC. Vì vậy, điều quan trọng cần lưu ý là chúng tôi phải cung cấp thông số

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
18 và
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
19 nếu thời gian không ở UTC

Mũi tên là một thư viện khác để xử lý ngày giờ trong Python. Và giống như trước đây với

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
16, nó cũng tự động tìm ra định dạng ngày giờ. Sau khi được giải thích, nó trả về một đối tượng Python
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 từ đối tượng
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
2

Để dễ dàng chuyển đổi một chuỗi thành datetime bằng Python's

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
2

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
3

đầu ra

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
4

Và đây là cách bạn có thể sử dụng

import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
2 để chuyển đổi múi giờ bằng phương pháp
import datetime

date_time_str = 'Jul 17 2022 9:20AM'
date_time_obj = datetime.datetime.strptime[date_time_str, '%b %d %Y %I:%M%p']

print['Date:', date_time_obj.date[]]
print['Time:', date_time_obj.time[]]
print['Date-time:', date_time_obj]
45

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
5

đầu ra

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
6

Như bạn có thể thấy chuỗi ngày giờ được chuyển đổi thành vùng "America/New_York"

Bây giờ, hãy sử dụng lại cùng một bộ chuỗi mà chúng ta đã sử dụng ở trên

Mã này sẽ không thành công đối với các chuỗi ngày giờ đã được nhận xét, chiếm hơn một nửa số ví dụ của chúng tôi. Đầu ra cho các chuỗi khác sẽ là

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
7

Để phân tích cú pháp chính xác các chuỗi ngày-giờ được nhận xét, bạn cần chuyển các mã thông báo định dạng tương ứng để cung cấp manh mối cho thư viện về cách phân tích cú pháp đó

Sự kết luận

Trong bài viết này, chúng tôi đã chỉ ra các cách khác nhau để phân tích một chuỗi thành một đối tượng

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 trong Python. Bạn có thể chọn thư viện Python
Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 mặc định hoặc bất kỳ thư viện bên thứ ba nào được đề cập trong bài viết này, trong số nhiều thư viện khác

Vấn đề chính với gói

Date: 2022-12-01
Time: 10:27:03.929149
Date-time: 2022-12-01 10:27:03.929149
8 mặc định là chúng ta cần chỉ định mã phân tích theo cách thủ công cho hầu hết các định dạng chuỗi ngày-giờ. Vì vậy, nếu định dạng chuỗi của bạn thay đổi trong tương lai, bạn cũng sẽ phải thay đổi mã của mình. Nhưng nhiều thư viện của bên thứ ba, như những thư viện được đề cập ở đây, tự động xử lý

Một vấn đề nữa mà chúng tôi gặp phải là xử lý các múi giờ. Cách tốt nhất để xử lý chúng là luôn lưu trữ thời gian trong cơ sở dữ liệu của bạn ở định dạng UTC và sau đó chuyển đổi nó thành múi giờ địa phương của người dùng khi cần

Các thư viện này không chỉ tốt cho việc phân tích chuỗi mà còn có thể được sử dụng cho nhiều loại hoạt động liên quan đến ngày giờ khác nhau. Tôi khuyến khích bạn xem qua các tài liệu để tìm hiểu chi tiết các chức năng

Mảng [

Có nghĩa là " tất cả các phần tử của dãy trừ phần tử cuối cùng ". Trong bối cảnh của f. dòng đọc [] [. -1] có nghĩa là "Tôi khá chắc chắn rằng dòng đó kết thúc bằng một dòng mới và tôi muốn loại bỏ nó".

Là 1 và 1. 0 giống nhau trong Python?

Nói một cách đơn giản, 1 là một số nguyên, 1. 0 là số float .

Làm cách nào bạn có thể chuyển đổi chuỗi 1 thành số nguyên 1 trong Python?

Trong Python, một chuỗi có thể được chuyển đổi thành một số nguyên bằng cách sử dụng hàm int[] tích hợp sẵn . Hàm int[] lấy bất kỳ kiểu dữ liệu python nào và chuyển đổi nó thành một số nguyên.

Kết quả của 1 '+' 2 trong Python là gì?

Trong Python, '1' + '2' bằng ' 12 '. Điều này là do cả '1' và '2' đều là các chuỗi nên thao tác + thêm một chuỗi vào cuối chuỗi kia. Điều này được gọi là nối chuỗi.

Chủ Đề