Datetime có phải là ngày trong Python không?
Mô-đun 7 là mô-đun tích hợp sẵn trong Python cho phép chúng ta làm việc với ngày và giờ một cách dễ dàng. Bên trong mô-đun, chúng ta có thể tìm thấy một vài lớp, nhưng những lớp được sử dụng nhiều nhất là 7 và 9 Show
Điều này thường có nghĩa là chúng ta làm việc với lớp 7 bên trong mô-đun 7—hơi khó hiểu, nhưng đó là lý do tại sao bạn thường thấy những thứ như 2 khi xem mã Python sử dụng lớp nàyĐối tượng import datetime today = datetime.datetime(year=2019, month=12, day=23, hour=11, minute=49, second=30) tomorrow = datetime.datetime(year=2019, month=12, day=24, hour=11, minute=49, second=30) print(today > tomorrow) # False 7 là gì?Nói một cách đơn giản, đối tượng 7 là đối tượng lưu trữ thông tin về một thời điểm cụ thể. Thông tin như năm, tháng, ngày, giờ, phút và giây. Với tất cả thông tin đó, chúng ta có thể sử dụng đối tượng 7 để chỉ một thời điểm cụ thể. Ví dụ
Ngoài việc lưu trữ dữ liệu về thời điểm cụ thể, nó còn có các phương thức giúp chúng ta tương tác hoặc xử lý dữ liệu đó theo cách có ý nghĩa Ví dụ: đưa ra hai đối tượng 7, bạn có thể so sánh chúng để xem đối tượng nào sẽ tiến xa hơn trong tương lai
Ở đây chúng tôi sẽ in 7 vì 8 là trong quá khứ, so với 9. Đây là cách chúng ta có thể so sánh hai ngày, ví dụ để biết liệu điều gì đó đã xảy ra trong quá khứCách lấy ngày hôm nayBởi vì việc lấy ngày hôm nay là quá phổ biến, nên lớp 7 có một phương thức mà bạn có thể sử dụng để lấy một đối tượng 7 mới cho ngày hôm nay
Bạn cũng có thể sử dụng 82 để lấy ngày giờ hiện tại, nhưng đôi khi nó có thể kém chính xác hơn. Ngoài ra, giờ đây nó cho phép chúng tôi cung cấp thông tin múi giờ (thêm về điều đó sau. )Lưu ý rằng khi chúng tôi đang làm điều này, chúng tôi nhận được micro giây cũng như các biện pháp thời gian khác. Điều này có thể không cần thiết, nhưng khi làm việc với máy tính, đôi khi nó có thể hữu ích Cách sửa đổi ngày thángBạn không thể cộng hai ngày lại với nhau, vì điều đó hiếm khi hợp lý. Ví dụ: điều gì sẽ xảy ra nếu bạn thêm "hôm nay" vào "hôm nay"? 8Thay vào đó, khi bạn muốn thay đổi một ngày—ví dụ bằng cách thêm một vài ngày vào ngày đó—chúng ta sử dụng lớp 9. "Delta" trong toán học có nghĩa là "sự thay đổi", vì vậy đó là nguồn gốc của cái tên này 1Bạn có thể sử dụng 9 với các đối số này
Nhưng bản thân đối tượng sẽ chỉ lưu trữ 85, 86 và 87. Tất cả các đối số khác sẽ được chuyển thành (e. g. 15 sẽ được thêm vào 86)Cách hiển thị ngày thángBạn có thể 17 ngày hoặc chuyển đổi chúng thành chuỗi bằng cách sử dụng hàm 18 tích hợp để chúng sẽ được hiển thị ở định dạng này
Đôi khi bạn có thể muốn linh hoạt hơn về cách bạn in nó ra. Có thể bạn chỉ muốn in phần ngày tháng. Hoặc có thể, chỉ là "giờ và phút" Bạn có thể làm điều này bằng cách sử dụng 19, viết tắt của "thời gian định dạng chuỗi" 9Làm điều này hoàn toàn không sửa đổi đối tượng 8, nó chỉ tạo ra một chuỗi biểu thị ngày hoặc giờ theo quy định của "chuỗi định dạng" được truyềnĐây là một tài liệu tham khảo tốt cho tất cả những thứ khác nhau mà bạn có thể chuyển đến 1. [https. // strftime. org/](https. // strftime. tổ chức/)Cách phân tích ngày thángRất giống với việc in ngày có định dạng cụ thể, chúng ta có thể đọc ngày có định dạng cụ thể Ví dụ: giả sử người dùng của bạn cung cấp cho bạn một chuỗi mô tả ngày hôm nay. 2. Rõ ràng chuỗi này ở định dạng "ngày-tháng-năm". Ở định dạng Python 7. 4Chúng ta có thể sử dụng 5 để phân tích chuỗi ngày tháng thành đối tượng 7 7Các chuỗi định dạng giống như chúng tôi đã sử dụng cho ________ 51 có thể được sử dụng trong ________ 58 Dấu thời gian là gì?Dấu thời gian là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970, lúc nửa đêm Chúng tôi sử dụng dấu thời gian vì làm việc với một số (mặc dù lớn) sẽ dễ dàng hơn so với nhiều số, mỗi số mô tả một phép đo khác nhau Dấu thời gian cho "ngày 2 tháng 1 năm 1970, lúc nửa đêm" sẽ là 9. số giây trong một ngàyĐể lấy dấu thời gian, bạn có thể gọi phương thức 90 của bất kỳ đối tượng 7 nào 3Vì hiện tại việc lấy dấu thời gian là quá phổ biến nên chúng ta có thể sử dụng mô-đun 92 để lấy dấu thời gian dễ dàng hơn 5Múi giờMúi giờ là một khu vực sử dụng cùng một thời gian tiêu chuẩn Ví dụ: nhiều nước Tây Âu sử dụng cùng một múi giờ tiêu chuẩn—Tây Ban Nha, Pháp, Ý, Đức, v.v. Tất cả đều thuộc múi giờ "Giờ Trung Âu". Vào mùa hè, khi tiết kiệm ánh sáng ban ngày có hiệu lực, tất cả chúng đều ở múi giờ "Giờ mùa hè Trung Âu" Nếu bạn đang chạy Python trên máy tính đang sử dụng CET, thì thực hiện 93 sẽ cung cấp cho bạn giờ địa phương của máy tínhTuy nhiên, nếu bạn lấy một máy tính khác đang sử dụng Giờ chuẩn Thái Bình Dương, thì 93 sẽ cho bạn một thời gian khácĐó là lý do tại sao điều quan trọng là phải báo cho các đối tượng 7 biết múi giờ mà chúng đại diện là ở đâu. để bất kể máy tính nào đang chạy mã, thời gian được biểu thị sẽ luôn giống nhauThời gian "trung tâm" được gọi là Giờ phối hợp quốc tế (UTC). Tất cả các múi giờ khác có thể được mô tả bằng cách sử dụng UTC làm tham chiếu. Ví dụ: CET là UTC + 1 giờ. PST là UTC - 6 giờ Do đó, chúng tôi sẽ viết CET là 96 và PST là 97Chúng tôi gọi đó là "phần bù" và nó thường được đặt sau ngày và giờ. Ví dụ 0Thời gian trên là 11. 54 với độ lệch 1 giờ Điều đó có nghĩa là múi giờ đó có thể là CET (hoặc bất kỳ múi giờ nào khác có chênh lệch +1 giờ so với UTC) Chúng ta có thể tính thời gian UTC bằng cách lấy thời gian trừ đi 1 giờ, điều này sẽ đưa chúng ta vào 10. 54 Lấy ngày giờ hiện tại theo UTCChúng tôi đã học được rằng bạn có thể lấy giờ địa phương như vậy 1Khi làm điều này, bạn có thể yêu cầu Python lấy cho bạn thời gian hiện tại, nhưng được dịch sang một múi giờ khác. Dưới đây chúng tôi chuyển 98 đến 99 để Python sẽ cung cấp cho chúng tôi thời gian hiện tại theo múi giờ UTC 2Bạn có thể thấy rằng trong trường hợp của tôi, thời gian là như nhau. Đó là bởi vì hiện tại múi giờ của tôi cũng có độ lệch +00. 00, vì vậy nó khớp với UTC Nếu múi giờ của bạn không khớp với UTC, bạn sẽ thấy hai thời điểm đó khác nhau (thực tế, sự khác biệt sẽ là múi giờ của bạn chênh lệch với UTC) Lưu ý rằng khi chúng tôi thực hiện 99 mà không chuyển múi giờ, chuỗi được in của chúng tôi không chứa phần bù. Nhưng khi chúng tôi thực hiện 71, chuỗi được in chứa phần bù 72Ngây thơ vs. ngày giờ nhận thứcNếu đối tượng 7 của bạn biết múi giờ mà ngày và giờ nó đại diện nằm ở đâu, thì chúng tôi gọi đó là đối tượng 7 nhận biết. Nếu nó không có thông tin múi giờ, chúng tôi gọi đó là một đối tượng ngây thơCác đối tượng nhận thức đại diện cho các thời điểm cụ thể tại các địa điểm cụ thể trên thế giới. Các đối tượng ngây thơ chỉ đại diện cho các điểm cụ thể trong thời gian Lưu ý rằng làm việc với các đối tượng ngây thơ có thể nguy hiểm vì các đoạn mã khác nhau có thể diễn giải đối tượng ngây thơ đang sử dụng múi giờ khác. Ví dụ: một số mã của bạn có thể sử dụng một đối tượng ngây thơ như thể nó ở UTC. Một số mã khác có thể sử dụng một đối tượng ngây thơ như thể nó ở múi giờ địa phương hiện tại Do đó, hầu như luôn luôn là một ý tưởng hay khi lưu trữ thông tin múi giờ trong các đối tượng 7 của bạnChuyển đổi từ múi giờ này sang múi giờ khác bằng pytzBạn có thể chuyển đổi từ múi giờ này sang múi giờ khác bằng cách sử dụng mô-đun 7 tích hợp, nhưng bạn sẽ cần cho Python biết múi giờ nào tồn tại và có thể được sử dụng bằng cách viết một lớp cho từng múi giờ phân lớp cho lớp 77. Bạn cũng sẽ phải thực hiện nhiều công việc thủ công để các lớp múi giờ của bạn theo dõi tiết kiệm ánh sáng ban ngàyNgoài ra, bạn có thể sử dụng (và có lẽ nên sử dụng) mô-đun 78 để làm việc với các múi giờ trong mã Python của bạnTrước hết, hãy cài đặt 78 bằng cách làm theo hoặc sử dụng 30Lấy múi giờ từ pytzMô-đun 78 đi kèm với toàn bộ cơ sở dữ liệu về múi giờ, có thể truy cập bằng tên chính thức của chúng 3Thêm thông tin múi giờ vào một ngày giờ gốcNếu bạn có một đối tượng 7 ngây thơ (từ mô-đun tích hợp sẵn), bạn có thể sử dụng 78 để thêm thông tin múi giờ 4Lưu ý rằng việc làm này không làm thay đổi thông tin thời gian trong đối tượng 7Chuyển đổi từ múi giờ này sang múi giờ khácNếu bạn có một đối tượng 7 đã biết và bạn muốn dịch nó sang một múi giờ khác, thì bạn cũng có thể làm điều này với 78 5Bây giờ thời gian được hiển thị đã thay đổi vì nó có cùng ngày và giờ, nhưng ở múi giờ khác. Cả 37 và 38 đều đề cập đến cùng một thời điểm chính xácBạn có thể chắc chắn về điều đó bằng cách tự chuyển đổi từng cái sang UTC. Thêm 5 giờ vào 37 và trừ 1 giờ từ 38 để đạt +00. bù 00. Bạn sẽ thấy thời gian giống hệt nhauĐối phó với tiết kiệm ánh sáng ban ngàyMô-đun 78 giải quyết vấn đề tiết kiệm ánh sáng ban ngày với bạn. Ví dụ: múi giờ 52 đôi khi có thể là 53 và những thời điểm khác là 54, tùy thuộc vào thời điểm trong nămMột ví dụ về điều này được hiển thị bên dưới Làm việc với ngày và giờ trong các ứng dụng phần mềmThông thường, tôi khuyên bạn nên luôn làm việc ở UTC trong các ứng dụng của mình. Hỏi người dùng về giờ và múi giờ địa phương và chuyển đổi nó thành UTC. Lưu trữ UTC trong cơ sở dữ liệu của bạn. Chỉ thay đổi về giờ địa phương của người dùng khi bạn đang hiển thị ngày và giờ cho họ (và chỉ khi người dùng của bạn muốn xem giờ theo giờ địa phương của họ) Bằng cách đó, bạn sẽ không phải lo lắng về múi giờ trong logic ứng dụng của mình; Mô-đun 78 đi kèm với múi giờ 56 mà bạn có thể sử dụng khi xây dựng các đối tượng 7 để đơn giản hóa việc này 6Miễn là bạn luôn làm việc với UTC và chỉ chuyển đổi sang múi giờ địa phương của người dùng khi bạn đang hiển thị thông tin, việc này sẽ tương đối đơn giản kết thúcCảm ơn bạn đã đọc bài đăng trên blog này về cách làm việc với ngày và giờ trong Python bằng cách sử dụng 7 và 78. Tôi hy vọng nó hữu íchNếu bạn muốn tìm hiểu thêm về Python nói chung, hãy xem Khóa học Python hoàn chỉnh của chúng tôi. Đây là khóa học video kéo dài 30 giờ đưa bạn từ người mới bắt đầu đến chuyên gia về Python. Chúng tôi rất muốn nhìn thấy bạn ở đó Là ngày giống như datetime?Loại NGÀY được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian . MySQL truy xuất và hiển thị các giá trị NGÀY ở định dạng ' YYYY-MM-DD '. Phạm vi được hỗ trợ là '1000-01-01' đến '9999-12-31'. Loại DATETIME được sử dụng cho các giá trị chứa cả phần ngày và giờ.
Làm cách nào để chuyển đổi ngày giờ thành ngày Python?Đối với điều này, chúng tôi sẽ sử dụng phương thức strptime() và mô-đun Pandas . Phương thức này được sử dụng để tạo một đối tượng DateTime từ một chuỗi. Sau đó, chúng tôi sẽ trích xuất ngày từ đối tượng DateTime bằng cách sử dụng hàm date() và dt. ngày từ Pandas trong Python.
Làm cách nào để so sánh ngày giờ và ngày tháng trong Python?Sử dụng các toán tử so sánh (như < , > , , v.v. ) để so sánh ngày tháng trong Python . Ví dụ: datetime_1 > datetime_2 để kiểm tra xem datetime_1 có lớn hơn datetime_2 không. Nếu bạn chỉ muốn so sánh ngày tháng của đối tượng DateTime, hãy sử dụng phương thức date() để chỉ trích xuất phần ngày tháng từ đối tượng datetime.
Tại sao datetime được sử dụng trong Python?Mô-đun datetime cung cấp các lớp để thao tác ngày và giờ . Mặc dù số học ngày và giờ được hỗ trợ, trọng tâm của việc triển khai là trích xuất thuộc tính hiệu quả để định dạng và thao tác đầu ra. Các chức năng liên quan đến lịch chung. |