Làm cách nào để sử dụng mô-đun ngày giờ trong python?
Trong bài đăng này, chúng ta sẽ đi sâu vào mô-đun ngày giờ của Python và khám phá cách chúng ta có thể triển khai hiệu quả dữ liệu ngày và giờ vào mã Python của mình Show Bất kể bạn đang theo đuổi lĩnh vực lập trình Python nào, đây là mô-đun cần phải biết với vô số ứng dụng và rất nhiều ứng dụng nghề nghiệp chuyên nghiệp Bắt đầu nào điều kiện tiên quyết. Người đọc dự kiến sẽ có kiến thức làm việc về ngôn ngữ lập trình Python Mục lục
Giới thiệu về Python Ngày giờMô-đun datetime của Python chứa nhiều lớp khác nhau để biểu diễn và thao tác ngày và giờ. Các lớp quan trọng trong datetime là date, time, datetime, timedelta, tzinfo, timezone. Chúng ta sẽ xem xét ngắn gọn về các đối tượng ngày, giờ và timedelta và chi tiết hơn về các đối tượng datetime. Múi giờ không được đề cập trong bài viết này Đối tượng nhận thức Vs NaiveCác đối tượng Ngày và Giờ chứa thông tin múi giờ và giờ tiết kiệm ánh sáng ban ngày (DST) được gọi là các đối tượng nhận biết. Một đối tượng nhận thức đại diện cho một thời điểm không thể diễn giải và có thể định vị chính nó so với các đối tượng nhận thức khác. Các đối tượng ngây thơ đơn giản hơn và đại diện cho UTC hoặc giờ địa phương, v.v. và không thể xác định vị trí của chúng so với các đối tượng nhận thức khác đối tượng ngày là ngây thơ. đối tượng ngày giờ và thời gian có thể ngây thơ hoặc nhận thức Các lớp họcngày giờ. ngày thángTạo đối tượng ngày thángMột đối tượng ngày đại diện cho một ngày. Hàm tạo cho các đối tượng ngày là ngày (năm, tháng, ngày). Một ngày cũng có thể được tạo từ một ngày hiện có bằng cách sử dụng phương thức thay thế để thay thế năm/tháng/ngày. Chúng ta cũng có thể thiết lập ngày trong tuần # date constructor >>> d = date (1999, 5, 26) # methods to get data >>> d.day 26 >>> d.month 5 >>> d.year 1999 # Monday = 0, Sunday = 6 >>> d.weekday() 2 # Monday = 1, Sunday = 7 >>>> d.isoweekday() 3 >>> d.replace (month=11) datetime.date(1999, 11, 26) Các phương thức lớp ngày quan trọngCác phương thức sau đây được định nghĩa trên lớp ngày và cung cấp thông tin về phạm vi ngày được hỗ trợ bởi lớp ngày # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:00 ngày định dạngĐối tượng ngày tháng có thể được định dạng theo nhiều cách khác nhau bằng cách sử dụng các phương thức khác nhau của lớp ngày tháng. strftime là một phương pháp định dạng mạnh mẽ hỗ trợ một số định dạng. Chúng ta sẽ xem xét nó một cách chi tiết trong phần tiếp theo >>> d = date (1999, 5, 26) >>> d.isoformat() '1999-05-26' >>> d.ctime() 'Wed May 26 00:00:00 1999' >>> d.strftime('%d%m%y') '260599' strftime cho đối tượng ngàyCú pháp chung của strftime như sau datetime.date.strftime(format_string) strftime là một phương thức thể hiện trên các đối tượng datetime, date, time. Nó chuyển đổi một đối tượng ngày thành một chuỗi được định dạng. Nó hỗ trợ nhiều chuỗi định dạng được mô tả chi tiết trong Tài liệu Python. Trong phần này, chúng ta xem xét một số ví dụ về định dạng strftime trong ngữ cảnh của đối tượng ngày tháng Các mã định dạng cho giờ, phút, giây, micro giây không được sử dụng ở đây vì chúng không áp dụng cho các đối tượng ngày tháng. Nếu được sử dụng, chúng được thay thế bằng 0 >>> d.strftime('%A %B %Y') 'Wednesday May 1999' >>> d.strftime('%a %b %y') 'Wed May 99' # %j = day of the year >>> d.strftime('%a %b %y %j') 'Wed May 99 146' # %U = week of the year (Sunday = 1) >>> d.strftime('%j %U') '146 21' ngày giờ. thời gianMột đối tượng thời gian đại diện cho một thời gian trong ngày, không phụ thuộc vào ngày. Nó có thể được điều chỉnh bằng đối tượng múi giờ (tzinfo). Số học không được hỗ trợ trên các đối tượng thời gian Tạo đối tượng thời gianCó thể tạo một đối tượng thời gian bằng cách sử dụng hàm tạo thời gian, từ một đối tượng thời gian hiện có bằng cách sử dụng phương thức thay thế (để thay thế giờ/phút/giây/micro giây) hoặc từ một chuỗi có định dạng iso Hàm tạo cho đối tượng thời gian như sau datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0 from datetime import time >>> t = time(12, 25, 9) >>> t.hour 12 >>> t.second 9 >>> t.minute 25 >>> t.microsecond 0 >>> t.isoformat() '12:25:09' >>> t.strftime('%H:%M:%S') '12:25:09' # New date from existing date by replacing minute >>> t2 = t.replace(minute=44) >>> t2.isoformat() '12:44:09' # new time from isoformatted string >>> t3 = time.fromisoformat('14:45:59') >>> t3 datetime.time(14, 45, 59) >>> t3.isoformat() '14:45:59' strftime cho đối tượng thời gianstrftime là một phương thức thể hiện trên các đối tượng datetime, date, time. Nó chuyển đổi một đối tượng thời gian thành một chuỗi được định dạng. Nó hỗ trợ nhiều chuỗi định dạng được mô tả chi tiết trong Tài liệu Python. Trong phần này, chúng ta xem xét một số ví dụ về định dạng strftime trong ngữ cảnh của đối tượng time Các chuỗi định dạng cho năm, tháng và ngày không được sử dụng ở đây vì chúng không áp dụng cho các đối tượng thời gian. Nếu được sử dụng, # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:008 được thay thế cho năm và # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:009 cho tháng và ngày >>> t = time(12, 25, 9) # 24-hour clock >>> t.strftime('%H:%M:%S') '14:45:59' # 12-hour clock >>> t.strftime('%I:%M:%S %p') '02:45:59 PM' # 1 substituted for month, day, 1900 for year >>> t.strftime('%c') 'Mon Jan 1 14:45:59 1900' Các phương thức lớp thời gian quan trọngCác phương thức sau được định nghĩa trên lớp thời gian và cung cấp thông tin về phạm vi thời gian được hỗ trợ bởi lớp thời gian # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:000 ngày giờ. múi giờtimedelta là khoảng thời gian thể hiện sự khác biệt giữa 2 đối tượng date/time/datetime với độ chính xác micro giây. Điều quan trọng cần nhớ là số học không được hỗ trợ trên các đối tượng thời gian. Do đó, chúng ta phải chuyển đổi các đối tượng thời gian thành các đối tượng ngày giờ với bất kỳ ngày hợp lệ nào và sau đó tính toán sự khác biệt. Ngoài ra, một đối tượng ngày giả có thể được kết hợp với từng đối tượng thời gian và các đối tượng ngày giờ kết quả có thể được sử dụng để tính toán sự khác biệt # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:001 ngày giờ. ngày giờdatetime là một đối tượng quan trọng của mô-đun datetime, chứa thông tin từ một đối tượng ngày và giờ Tạo đối tượng ngày giờcác đối tượng ngày giờ có thể được tạo bằng hàm tạo, từ chuỗi iso, dấu thời gian POSIX, dấu thời gian UTC, kết hợp các đối tượng ngày và giờ. Ngày và giờ hiện tại cũng có thể được trả về bằng các phương thức như now() và today(). Chúng tôi xem xét một số phương pháp dưới đây. Để biết chuyên luận toàn diện về cách tạo đối tượng ngày giờ, hãy xem tài liệu Python Định dạng hàm tạo như sau # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:000 ngày giờ. now() có thể được sử dụng để lấy ngày, giờ địa phương hiện tại dưới dạng đối tượng datetime # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:001 datetime từ định dạng ISOMột đối tượng datetime có thể được tạo từ một chuỗi có định dạng ISO như sau # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:002 Kết hợp các đối tượng ngày và giờ thành datetimecác đối tượng ngày và giờ có thể được kết hợp thành một đối tượng ngày giờ bằng phương thức kết hợp # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:003 Số học với các đối tượng datetimeCó thể thêm hoặc bớt các đối tượng ngày giờ vào/bớt đối tượng timedelta để tạo ra một đối tượng ngày giờ. Ví dụ bên dưới cộng và trừ một múi giờ 30 ngày cho ngày hiện tại để tạo ra các đối tượng ngày giờ, sau 1 tháng và sớm hơn 1 tháng so với ngày hiện tại # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:004 strftime và strptime cho datetimestrftime là một phương thức để chuyển đổi một đối tượng datetime thành một chuỗi được định dạng dưới sự kiểm soát của một chuỗi định dạng. strptime là một phương thức lớp datetime chuyển đổi một chuỗi biểu thị ngày giờ thành một đối tượng ngày giờ bằng cách sử dụng chuỗi định dạng Các ví dụ của strftime # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:005 Các ví dụ của strptime # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:006 dấu thời gianDấu thời gian là một cách thể hiện các đối tượng ngày giờ dưới dạng một kỷ nguyên UNIX i. e. số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 UTC. Rất đơn giản để chuyển đổi giữa đối tượng ngày giờ và dấu thời gian # the earliest representable date >>> print (date.min) 0001-01-01 # the latest representable date >>> print (date.max) 9999-12-31 # the smallest possible difference between 2 non-equal date objects. >>> print (date.resolution) 1 day, 0:00:007 Đọc thêm/Tham khảoBạn đã sẵn sàng tìm hiểu thêm về Python datetime hoặc Python nói chung chưa?
Phần kết luậnVà chúng ta đã có nó – bây giờ bạn đã hiểu rõ hơn về mô-đun ngày giờ trong Python và cách bạn có thể sử dụng nó cho bất cứ điều gì bạn có thể cần trong một chương trình Python. Như chúng ta đã thảo luận, mô-đun ngày giờ trong Python có nhiều lớp khác nhau để xử lý ngày và giờ. Các lớp chính là ngày, giờ, datetime, timedelta, tzinfo và múi giờ. Lớp date chỉ đại diện cho một ngày, đối tượng time đại diện cho thời gian không phụ thuộc vào ngày và datetime đại diện cho cả ngày và giờ Hơn nữa, chúng tôi cũng chỉ ra cách có thể tạo các đối tượng ngày giờ theo nhiều cách khác nhau – sử dụng hàm tạo, kết hợp các đối tượng ngày và giờ, v.v. Chúng tôi cũng khám phá định dạng. strftime cho phép chúng ta biểu diễn một đối tượng ngày/giờ/ngày giờ dưới dạng chuỗi sử dụng chuỗi định dạng làm hướng dẫn. strptime sử dụng một chuỗi định dạng để chuyển đổi một chuỗi chứa ngày, giờ thành một đối tượng datetime Tuy nhiên, có nhiều điều để học hỏi từ đây. Mặc dù bài viết này không đề cập đến nó, nhưng mô-đun hỗ trợ tạo và thao tác ngày và giờ ở các múi giờ khác nhau, giúp bạn có nhiều sức mạnh hơn cho nhu cầu lập trình Python của mình. Bạn cũng có thể khám phá các khái niệm khác liên quan đến ngày, chẳng hạn như nhận thông tin Giờ tiết kiệm ánh sáng ban ngày, các kỹ thuật khác để xử lý múi giờ địa phương, v.v. Bất kể, với những công cụ này, bạn có thể nhanh chóng đạt được thành công và xây dựng các chương trình theo mong muốn của mình. Chúng tôi chúc bạn may mắn với các chương trình Python của mình Làm cách nào để lấy ngày giờ bằng Python?Lấy ngày giờ hiện tại bằng Python
. Ở đây, chúng tôi đã sử dụng datetime. now() để lấy ngày giờ hiện tại. Sau đó, chúng tôi đã sử dụng strftime() để tạo chuỗi biểu thị ngày và giờ ở định dạng khác. use the datetime class of the datetime module. Here, we have used datetime.now() to get the current date and time. Then, we used strftime() to create a string representing date and time in another format.
Mô-đun được sử dụng cho các thao tác ngày/giờ trong Python là gì?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. |