Python tính thứ hai như thế nào?

Ngày tháng trong Python không phải là kiểu dữ liệu của riêng nó, nhưng chúng ta có thể nhập một mô-đun có tên datetime để làm việc với ngày tháng dưới dạng đối tượng ngày tháng

Show

Ví dụ

Nhập mô-đun datetime và hiển thị ngày hiện tại

nhập ngày giờ

x = ngày giờ. ngày giờ. Hiện nay()
in(x)

Tự mình thử »


Xuất ngày

Khi chúng tôi thực thi mã từ ví dụ trên, kết quả sẽ là

Ngày chứa năm, tháng, ngày, giờ, phút, giây và micro giây

Mô-đun datetime có nhiều phương thức để trả về thông tin về đối tượng ngày tháng

Dưới đây là một vài ví dụ, bạn sẽ tìm hiểu thêm về chúng ở phần sau của chương này

Ví dụ

Trả về năm và tên của ngày trong tuần

nhập ngày giờ

x = ngày giờ. ngày giờ. Hiện nay()

in(x. năm)
in(x. strftime("%A"))

Tự mình thử »


Tạo đối tượng ngày

Để tạo ngày, chúng ta có thể sử dụng lớp datetime() (hàm tạo) của mô-đun datetime

Lớp datetime() yêu cầu ba tham số để tạo ngày. năm tháng ngày

Ví dụ

Tạo một đối tượng ngày

nhập ngày giờ

x = ngày giờ. ngày giờ(2020, 5, 17)

in(x)

Tự mình thử »

Lớp datetime() cũng nhận các tham số về thời gian và múi giờ (giờ, phút, giây, micro giây, tzone), nhưng chúng là tùy chọn và có giá trị mặc định là 0, (None cho múi giờ)


Học cách lọc dữ liệu bằng Python như một nhà phân tích dữ liệu

Python tính thứ hai như thế nào?

Thử tham gia các buổi đào tạo thực hành với hướng dẫn từng bước từ chuyên gia. Hãy thử dự án có hướng dẫn được thực hiện với sự cộng tác của Coursera ngay bây giờ

Get started


Phương thức strftime()

Đối tượng datetime có phương thức định dạng đối tượng ngày thành các chuỗi có thể đọc được

Phương thức này được gọi là strftime() và nhận một tham số, datetime0, để chỉ định định dạng của chuỗi được trả về

Làm việc với ngày và giờ là một trong những thách thức lớn nhất trong lập trình. Giữa việc xử lý các múi giờ, thời gian tiết kiệm ánh sáng ban ngày và các định dạng ngày được viết khác nhau, có thể khó theo dõi ngày và giờ bạn đang tham chiếu. May mắn thay, mô-đun

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 tích hợp sẵn trong Python có thể giúp bạn quản lý tính chất phức tạp của ngày và giờ

Trong hướng dẫn này, bạn sẽ học

  • Tại sao lập trình với ngày và giờ lại là một thách thức như vậy
  • Những chức năng nào có sẵn trong mô-đun Python
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7
  • Cách in hoặc đọc ngày và giờ ở một định dạng cụ thể
  • Cách làm số học với ngày tháng và thời gian

Ngoài ra, bạn sẽ phát triển một ứng dụng gọn gàng để đếm ngược thời gian còn lại cho đến PyCon US tiếp theo

Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python miễn phí của chúng tôi, trang này cho bạn biết kiến ​​thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python

Bắt đầu nào

Lập trình với ngày và giờ

Nếu bạn đã từng làm việc trên phần mềm cần theo dõi thời gian trên một số khu vực địa lý, thì bạn có thể hiểu tại sao việc lập trình theo thời gian lại khó khăn đến vậy. Sự mất kết nối cơ bản là các chương trình máy tính thích các sự kiện được sắp xếp hoàn hảo và đều đặn, nhưng cách mà hầu hết con người sử dụng và đề cập đến thời gian lại rất bất thường.

Ghi chú. Nếu bạn muốn tìm hiểu thêm về lý do tại sao việc xử lý thời gian lại phức tạp đến vậy, thì có rất nhiều tài nguyên tuyệt vời có sẵn trên web. Dưới đây là một vài nơi tốt để bắt đầu

  • Yêu máy tính. Vấn đề với thời gian và múi giờ
  • Làm việc với múi giờ. Mọi thứ bạn ước bạn không cần biết
  • Sự phức tạp của lập trình dữ liệu thời gian

Một ví dụ tuyệt vời về sự bất thường này là thời gian tiết kiệm ánh sáng ban ngày. Tại Hoa Kỳ và Canada, đồng hồ được đặt nhanh hơn một giờ vào Chủ nhật thứ hai của tháng 3 và lùi lại một giờ vào Chủ nhật đầu tiên của tháng 11. Tuy nhiên, điều này chỉ xảy ra từ năm 2007. Trước năm 2007, đồng hồ được điều chỉnh chuyển tiếp vào Chủ nhật đầu tiên của tháng 4 và lùi vào Chủ nhật cuối cùng của tháng 10

Mọi thứ thậm chí còn phức tạp hơn khi bạn xem xét các múi giờ. Lý tưởng nhất là ranh giới múi giờ sẽ theo chính xác các đường kinh tuyến. Tuy nhiên, vì lý do lịch sử và chính trị, múi giờ hiếm khi thẳng. Thông thường, các khu vực cách nhau một khoảng cách lớn sẽ có cùng múi giờ và các khu vực liền kề có múi giờ khác nhau. Có một số múi giờ ngoài kia với hình dạng khá ngộ nghĩnh

Loại bỏ các quảng cáo

Cách máy tính đếm thời gian

Gần như tất cả các máy tính đều tính thời gian ngay lập tức được gọi là kỷ nguyên Unix. Điều này xảy ra vào ngày 1 tháng 1 năm 1970, lúc 00. 00. 00 UTC. UTC là viết tắt của Giờ phối hợp quốc tế và đề cập đến thời gian ở kinh độ 0°. UTC thường còn được gọi là Giờ trung bình Greenwich hoặc GMT. UTC không được điều chỉnh theo giờ mùa hè, do đó, nó luôn duy trì 24 giờ mỗi ngày

Theo định nghĩa, thời gian Unix trôi qua với cùng tốc độ với UTC, do đó, bước một giây trong UTC tương ứng với bước một giây trong thời gian Unix. Bạn thường có thể tìm ra ngày và giờ theo UTC của bất kỳ thời điểm cụ thể nào kể từ ngày 1 tháng 1 năm 1970, bằng cách đếm số giây kể từ kỷ nguyên Unix, ngoại trừ giây nhuận. Giây nhuận đôi khi được thêm vào UTC để giải thích cho sự quay chậm của Trái đất nhưng không được thêm vào thời gian Unix

Ghi chú. Có một lỗi thú vị liên quan đến thời gian Unix. Vì nhiều hệ điều hành cũ hơn là 32-bit nên chúng lưu trữ thời gian Unix trong một số nguyên có chữ ký 32-bit

Điều này có nghĩa là tại 03. 14. 07 vào ngày 19 tháng 1 năm 2038, số nguyên sẽ tràn, dẫn đến sự cố được gọi là sự cố Năm 2038 hoặc Y2038. Tương tự như sự cố Y2K, Y2038 sẽ cần được khắc phục để tránh hậu quả thảm khốc cho các hệ thống quan trọng

Gần như tất cả các ngôn ngữ lập trình, kể cả Python, đều kết hợp khái niệm thời gian Unix. Thư viện chuẩn của Python bao gồm một mô-đun có tên là

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
9 có thể in số giây kể từ kỷ nguyên Unix

>>>

>>> import time
>>> time.time()
1579718137.550164

Trong ví dụ này, bạn nhập mô-đun

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
9 và thực thi để in thời gian Unix hoặc số giây (không bao gồm giây nhuận) kể từ kỷ nguyên

Ngoài thời gian Unix, máy tính cần một cách để truyền thông tin về thời gian cho người dùng. Như bạn đã thấy trong ví dụ trước, con người gần như không thể phân tích thời gian Unix. Thay vào đó, thời gian Unix thường được chuyển đổi thành UTC, sau đó có thể được chuyển đổi thành giờ địa phương bằng cách sử dụng hiệu số múi giờ

Cơ quan cấp số được gán trên Internet (IANA) duy trì cơ sở dữ liệu về tất cả các giá trị của độ lệch múi giờ. IANA cũng phát hành các bản cập nhật thường xuyên bao gồm mọi thay đổi về chênh lệch múi giờ. Cơ sở dữ liệu này thường được bao gồm trong hệ điều hành của bạn, mặc dù một số ứng dụng nhất định có thể bao gồm một bản sao cập nhật

Cơ sở dữ liệu chứa một bản sao của tất cả các múi giờ được chỉ định và số giờ và phút mà chúng được bù trừ từ UTC. Vì vậy, trong mùa đông, khi thời gian tiết kiệm ánh sáng ban ngày không có hiệu lực, múi giờ miền Đông Hoa Kỳ có độ lệch -05. 00, hoặc âm năm giờ từ UTC. Các khu vực khác có độ lệch khác nhau, có thể không phải là số nguyên giờ. Ví dụ, độ lệch UTC cho Nepal là +05. 45, hoặc dương năm giờ bốn mươi lăm phút tính từ UTC

Làm thế nào ngày tiêu chuẩn có thể được báo cáo

Thời gian Unix là cách máy tính đếm thời gian, nhưng con người sẽ cực kỳ kém hiệu quả khi xác định thời gian bằng cách tính số giây từ một ngày tùy ý. Thay vào đó, chúng tôi làm việc theo năm, tháng, ngày, v.v. Nhưng ngay cả với những quy ước này, một lớp phức tạp khác bắt nguồn từ thực tế là các ngôn ngữ và nền văn hóa khác nhau có cách viết ngày tháng khác nhau.

Ví dụ, ở Hoa Kỳ, ngày tháng thường được viết bắt đầu bằng tháng, rồi đến ngày, rồi đến năm. Điều này có nghĩa là ngày 31 tháng 1 năm 2020 được viết là 01-31-2020. Điều này phù hợp chặt chẽ với phiên bản viết dài của ngày

Tuy nhiên, hầu hết châu Âu và nhiều khu vực khác viết ngày bắt đầu bằng ngày, rồi đến tháng, rồi đến năm. Điều này có nghĩa là ngày 31 tháng 1 năm 2020 được viết là 31-01-2020. Những khác biệt này có thể gây ra đủ loại nhầm lẫn khi giao tiếp giữa các nền văn hóa

Để giúp tránh những lỗi giao tiếp, Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) đã phát triển ISO 8601. Tiêu chuẩn này chỉ định rằng tất cả các ngày phải được viết theo thứ tự dữ liệu quan trọng nhất đến ít quan trọng nhất. Điều này có nghĩa là định dạng là năm, tháng, ngày, giờ, phút và giây

YYYY-MM-DD HH:MM:SS

Trong ví dụ này,

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
2 đại diện cho năm có bốn chữ số và
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
3 và
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
4 là tháng và ngày có hai chữ số, bắt đầu bằng số 0 nếu cần. Sau đó,
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
5,
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
3 và
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
7 đại diện cho giờ, phút và giây có hai chữ số, bắt đầu bằng số 0 nếu cần

Ưu điểm của định dạng này là ngày tháng có thể được trình bày rõ ràng. Ngày được viết là

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
8 hoặc
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
9 có thể bị hiểu sai nếu ngày là số tháng hợp lệ. Bạn sẽ thấy một chút cách bạn có thể sử dụng định dạng ISO 8601 với Python
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7

Thời gian nên được lưu trữ như thế nào trong chương trình của bạn

Hầu hết các nhà phát triển đã làm việc với thời gian đã nghe lời khuyên chuyển đổi giờ địa phương thành UTC và lưu trữ giá trị đó để tham khảo sau này. Trong nhiều trường hợp, đặc biệt là khi bạn đang lưu trữ ngày tháng trong quá khứ, đây là thông tin đủ để thực hiện bất kỳ phép tính số học cần thiết nào.

Tuy nhiên, có thể xảy ra sự cố nếu người dùng chương trình của bạn nhập ngày trong tương lai theo giờ địa phương của họ. Múi giờ và các quy tắc về thời gian tiết kiệm ánh sáng ban ngày thay đổi khá thường xuyên, như bạn đã thấy trước đó với thay đổi về thời gian tiết kiệm ánh sáng ban ngày năm 2007 cho Hoa Kỳ và Canada. Nếu quy tắc múi giờ cho vị trí của người dùng của bạn thay đổi trước ngày trong tương lai mà họ đã nhập, thì UTC sẽ không cung cấp đủ thông tin để chuyển đổi trở lại giờ địa phương chính xác

Ghi chú. Có một số tài nguyên tuyệt vời có sẵn để giúp bạn xác định cách thích hợp để lưu trữ dữ liệu thời gian trong ứng dụng của mình. Đây là một vài nơi để bắt đầu

  • Thời gian tiết kiệm ánh sáng ban ngày và thực tiễn tốt nhất về múi giờ
  • Lưu trữ UTC không phải là Viên đạn bạc
  • Cách lưu ngày giờ cho các sự kiện trong tương lai
  • Các phương pháp mã hóa tốt nhất bằng cách sử dụng DateTime trong. Nền tảng NET

Trong trường hợp này, bạn cần lưu trữ giờ địa phương, bao gồm cả múi giờ mà người dùng đã nhập cũng như phiên bản của cơ sở dữ liệu múi giờ IANA có hiệu lực khi người dùng lưu thời gian. Bằng cách này, bạn sẽ luôn có thể chuyển đổi giờ địa phương sang UTC. Tuy nhiên, phương pháp này không phải lúc nào cũng cho phép bạn chuyển đổi UTC sang giờ địa phương chính xác

Loại bỏ các quảng cáo

Sử dụng Mô-đun >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7 của Python

Như bạn có thể thấy, làm việc với ngày tháng và thời gian trong lập trình có thể phức tạp. May mắn thay, ngày nay bạn hiếm khi cần triển khai các tính năng phức tạp từ đầu vì có sẵn nhiều thư viện mã nguồn mở để trợ giúp. Đây chắc chắn là trường hợp của Python, bao gồm ba mô-đun riêng biệt trong thư viện chuẩn để làm việc với ngày và giờ

  1. xuất lịch và cung cấp các chức năng bằng cách sử dụng lịch Gregorian được lý tưởng hóa
  2. >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 cung cấp các lớp thao tác ngày và giờ
  3. >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    9 cung cấp các chức năng liên quan đến thời gian khi không cần đến ngày tháng

Trong hướng dẫn này, bạn sẽ tập trung vào việc sử dụng mô-đun

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 của Python. Trọng tâm chính của
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 là làm cho việc truy cập các thuộc tính của đối tượng liên quan đến ngày, giờ và múi giờ trở nên dễ dàng hơn. Vì những đối tượng này rất hữu ích, nên
2020-01-31
2 cũng trả về các thể hiện của các lớp từ
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
9 kém hiệu quả hơn và sử dụng phức tạp hơn
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Nhiều hàm trong
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
9 trả về một thể hiện đặc biệt. Đối tượng này có giao diện bộ dữ liệu được đặt tên để truy cập dữ liệu được lưu trữ, làm cho nó tương tự như một phiên bản của
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Tuy nhiên, nó không hỗ trợ tất cả các tính năng của
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7, đặc biệt là khả năng thực hiện phép tính số học với các giá trị thời gian

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 cung cấp ba lớp tạo nên giao diện cấp cao mà hầu hết mọi người sẽ sử dụng

  1. là một ngày lý tưởng hóa giả sử lịch Gregorian kéo dài vô tận về tương lai và quá khứ. Đối tượng này lưu trữ các thuộc tính
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    7,
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 và
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    9
  2. là thời gian lý tưởng hóa giả sử có 86.400 giây mỗi ngày không có giây nhuận. Đối tượng này lưu trữ
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    1,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    2,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    3,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    4 và
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    5 (thông tin múi giờ)
  3. là sự kết hợp của một
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    7 và một
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    9. Nó có tất cả các thuộc tính của cả hai lớp

Tạo các phiên bản Python >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7

Ba lớp đại diện cho ngày và thời gian trong

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 có điểm giống nhau. Chúng có thể được khởi tạo bằng cách chuyển các đối số từ khóa cho từng thuộc tính, chẳng hạn như
>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)
7,
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7 hoặc
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1. Bạn có thể thử mã bên dưới để hiểu cách mỗi đối tượng được tạo

>>>

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)

Trong mã này, bạn nhập ba lớp chính từ

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và khởi tạo từng lớp đó bằng cách truyền đối số cho hàm tạo. Bạn có thể thấy rằng mã này hơi dài dòng và nếu bạn không có thông tin bạn cần dưới dạng số nguyên, thì các kỹ thuật này không thể được sử dụng để tạo các phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7

May mắn thay,

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 cung cấp một số cách thuận tiện khác để tạo các phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Các phương thức này không yêu cầu bạn sử dụng số nguyên để chỉ định từng thuộc tính mà thay vào đó cho phép bạn sử dụng một số thông tin khác

  1. tạo một phiên bản
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    6 với ngày địa phương hiện tại
  2. tạo một phiên bản
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    6 với ngày giờ địa phương hiện tại
  3. kết hợp các phiên bản của
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    6 và
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    0 thành một phiên bản duy nhất của
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    6

Ba cách tạo phiên bản

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 này rất hữu ích khi bạn không biết trước thông tin nào bạn cần chuyển vào bộ khởi tạo cơ bản. Bạn có thể dùng thử mã này để xem cách hoạt động của các trình khởi tạo thay thế

>>>

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)

Trong mã này, bạn sử dụng

 3>>> from datetime import datetime
 4>>> datetime.strptime(date_string, format_string)
 5datetime.datetime(2020, 1, 31, 14, 45, 37)
8,
 1>>> import dateparser
 2>>> dateparser.parse("yesterday")
 3datetime.datetime(2020, 3, 13, 14, 39, 1, 350918)
 4>>> dateparser.parse("morgen")
 5datetime.datetime(2020, 3, 15, 14, 39, 7, 314754)
0 và
 1>>> import dateparser
 2>>> dateparser.parse("yesterday")
 3datetime.datetime(2020, 3, 13, 14, 39, 1, 350918)
 4>>> dateparser.parse("morgen")
 5datetime.datetime(2020, 3, 15, 14, 39, 7, 314754)
2 để tạo các thể hiện của các đối tượng
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7,
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và ________0____9. Mỗi phiên bản được lưu trữ trong một biến khác nhau

  1. # pyconcd.py
    
    from datetime import datetime
    
    PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
    countdown = PYCON_DATE - datetime.now()
    print(f"Countdown to PyCon US 2021: {countdown}")
    
    3 là phiên bản
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    7 chỉ có năm, tháng và ngày
  2. # pyconcd.py
    
    from datetime import datetime
    
    PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
    countdown = PYCON_DATE - datetime.now()
    print(f"Countdown to PyCon US 2021: {countdown}")
    
    5 là một phiên bản
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 có năm, tháng, ngày, giờ, phút, giây và micro giây
  3. # pyconcd.py
    
    from datetime import datetime
    
    PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
    countdown = PYCON_DATE - datetime.now()
    print(f"Countdown to PyCon US 2021: {countdown}")
    
    7 là phiên bản
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    9 có giờ, phút và giây được đặt thành cùng các giá trị như
    # pyconcd.py
    
    from datetime import datetime
    
    PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
    countdown = PYCON_DATE - datetime.now()
    print(f"Countdown to PyCon US 2021: {countdown}")
    
    5

Ở dòng cuối cùng, bạn kết hợp thông tin ngày tháng trong

# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
3 với thông tin thời gian trong
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
7 để tạo ra một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 mới

Cảnh báo.

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 cũng cung cấp
YYYY-MM-DD HH:MM:SS
04, trả về một phiên bản của
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 tại UTC hiện tại. Tuy nhiên, Python khuyên bạn không nên sử dụng phương pháp này vì nó không bao gồm bất kỳ thông tin múi giờ nào trong trường hợp kết quả

Sử dụng

YYYY-MM-DD HH:MM:SS
04 có thể tạo ra một số kết quả đáng ngạc nhiên khi thực hiện phép tính số học hoặc so sánh giữa các trường hợp
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Trong phần , bạn sẽ thấy cách gán thông tin múi giờ cho
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 phiên bản

Sử dụng các chuỗi để tạo các trường hợp >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7 Python

Một cách khác để tạo các phiên bản

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7 là sử dụng. Để sử dụng phương pháp này, bạn cung cấp một chuỗi có ngày ở định dạng ISO 8601 mà bạn đã tìm hiểu về. Chẳng hạn, bạn có thể cung cấp một chuỗi có năm, tháng và ngày được chỉ định

2020-01-31

Chuỗi này đại diện cho ngày 31 tháng 1 năm 2020, theo định dạng ISO 8601. Bạn có thể tạo một phiên bản

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7 với ví dụ sau

>>>

>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)

Trong mã này, bạn sử dụng

YYYY-MM-DD HH:MM:SS
13 để tạo phiên bản
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7 cho ngày 31 tháng 1 năm 2020. Phương pháp này rất hữu ích vì nó dựa trên tiêu chuẩn ISO 8601. Nhưng nếu bạn có một chuỗi biểu thị ngày và giờ nhưng không ở định dạng ISO 8601 thì sao?

May mắn thay, Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 cung cấp một phương thức được gọi để xử lý tình huống này. Phương pháp này sử dụng một ngôn ngữ nhỏ đặc biệt để báo cho Python biết phần nào của chuỗi được liên kết với thuộc tính
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7

Để xây dựng một

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 từ một chuỗi bằng cách sử dụng
YYYY-MM-DD HH:MM:SS
16, bạn phải cho Python biết mỗi phần của chuỗi đại diện cho điều gì bằng cách sử dụng mã định dạng từ ngôn ngữ nhỏ. Bạn có thể thử ví dụ này để xem cách hoạt động của
YYYY-MM-DD HH:MM:SS
16

>>>

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"

Ở dòng 1, bạn tạo

YYYY-MM-DD HH:MM:SS
21, đại diện cho ngày và giờ 31 tháng 1 năm 2020, lúc 2. 45. 37 giờ chiều. Ở dòng 2, bạn tạo
YYYY-MM-DD HH:MM:SS
22, sử dụng ngôn ngữ nhỏ để chỉ định cách các phần của
YYYY-MM-DD HH:MM:SS
21 sẽ được biến thành thuộc tính
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7

Trong

YYYY-MM-DD HH:MM:SS
22, bạn bao gồm một số mã định dạng và tất cả các dấu gạch ngang (
YYYY-MM-DD HH:MM:SS
26), dấu hai chấm (
YYYY-MM-DD HH:MM:SS
27) và dấu cách chính xác như chúng xuất hiện trong
YYYY-MM-DD HH:MM:SS
21. Để xử lý ngày và giờ trong
YYYY-MM-DD HH:MM:SS
21, bạn bao gồm các mã định dạng sau

Thành phầnMãGiá trịNăm (dưới dạng số nguyên có bốn chữ số)

YYYY-MM-DD HH:MM:SS
302020Tháng (dưới dạng số thập phân không đệm)
YYYY-MM-DD HH:MM:SS
3101Ngày (dưới dạng số thập phân không đệm)
YYYY-MM-DD HH:MM:SS
3231Giờ (dưới dạng số thập phân không đệm với đồng hồ 24 giờ)
YYYY-MM-DD HH:MM:SS
3314Phút (dưới dạng số thập phân không đệm)
YYYY-MM-DD HH:MM:SS
3445Giây (dưới dạng số không-

Danh sách đầy đủ tất cả các tùy chọn bằng ngôn ngữ nhỏ nằm ngoài phạm vi của hướng dẫn này, nhưng bạn có thể tìm thấy một số tài liệu tham khảo tốt trên web, bao gồm cả trong Python và trên trang web có tên strftime. tổ chức

Giờ thì

YYYY-MM-DD HH:MM:SS
21 và
YYYY-MM-DD HH:MM:SS
22 đã được xác định, bạn có thể sử dụng chúng để tạo phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Đây là một ví dụ về cách hoạt động của
YYYY-MM-DD HH:MM:SS
16

>>>

 3>>> from datetime import datetime
 4>>> datetime.strptime(date_string, format_string)
 5datetime.datetime(2020, 1, 31, 14, 45, 37)

Trong mã này, bạn nhập

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 trên dòng 3 và sử dụng
YYYY-MM-DD HH:MM:SS
41 với
YYYY-MM-DD HH:MM:SS
21 và
YYYY-MM-DD HH:MM:SS
22 trên dòng 4. Cuối cùng, dòng 5 hiển thị giá trị của các thuộc tính trong trường hợp
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 được tạo bởi
YYYY-MM-DD HH:MM:SS
16. Bạn có thể thấy rằng chúng khớp với các giá trị được hiển thị trong bảng trên

Ghi chú. Có nhiều cách nâng cao hơn để tạo phiên bản

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7, nhưng chúng liên quan đến việc sử dụng các thư viện của bên thứ ba phải được cài đặt. Một thư viện đặc biệt gọn gàng có tên là
YYYY-MM-DD HH:MM:SS
47, cho phép bạn cung cấp đầu vào chuỗi ngôn ngữ tự nhiên. Đầu vào thậm chí được hỗ trợ trong một số ngôn ngữ

>>>

 1>>> import dateparser
 2>>> dateparser.parse("yesterday")
 3datetime.datetime(2020, 3, 13, 14, 39, 1, 350918)
 4>>> dateparser.parse("morgen")
 5datetime.datetime(2020, 3, 15, 14, 39, 7, 314754)

Trong mã này, bạn sử dụng

YYYY-MM-DD HH:MM:SS
47 để tạo hai phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 bằng cách chuyển hai biểu diễn chuỗi thời gian khác nhau. Ở dòng 1, bạn nhập
YYYY-MM-DD HH:MM:SS
47. Sau đó, ở dòng 2, bạn sử dụng
YYYY-MM-DD HH:MM:SS
51 với đối số
YYYY-MM-DD HH:MM:SS
52 để tạo một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 hai mươi bốn giờ trước. Tại thời điểm viết bài, đây là ngày 13 tháng 3 năm 2020, lúc 2. 39 giờ tối

Ở dòng 3, bạn sử dụng

YYYY-MM-DD HH:MM:SS
51 với đối số
YYYY-MM-DD HH:MM:SS
55. Morgen là từ tiếng Đức có nghĩa là ngày mai, vì vậy
YYYY-MM-DD HH:MM:SS
47 tạo ra một thể hiện
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 24 giờ trong tương lai. Tại thời điểm viết bài, đây là ngày 15 tháng 3 lúc 2. 39 giờ tối

Loại bỏ các quảng cáo

Bắt đầu đếm ngược PyCon của bạn

Bây giờ bạn đã có đủ thông tin để bắt đầu làm việc trên đồng hồ đếm ngược cho PyCon US năm sau. PyCon US 2021 sẽ bắt đầu vào ngày 12 tháng 5 năm 2021 tại Pittsburgh, PA. Với sự kiện năm 2020 đã bị hủy bỏ, nhiều Pythonistas đang vô cùng hào hứng cho cuộc tụ họp năm sau. Đây là một cách tuyệt vời để theo dõi xem bạn sẽ phải đợi bao lâu và đồng thời nâng cao kỹ năng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 của mình

Để bắt đầu, hãy tạo một tệp có tên

YYYY-MM-DD HH:MM:SS
59 và thêm mã này

# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")

Trong mã này, bạn nhập

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 từ
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và xác định một hằng số,
YYYY-MM-DD HH:MM:SS
62, lưu trữ ngày của PyCon US tiếp theo. Bạn không mong đợi ngày của PyCon sẽ thay đổi, vì vậy bạn đặt tên biến bằng chữ in hoa toàn bộ để cho biết rằng đó là một hằng số

Tiếp theo, bạn tính toán sự khác biệt giữa

 1>>> import dateparser
 2>>> dateparser.parse("yesterday")
 3datetime.datetime(2020, 3, 13, 14, 39, 1, 350918)
 4>>> dateparser.parse("morgen")
 5datetime.datetime(2020, 3, 15, 14, 39, 7, 314754)
0, là thời gian hiện tại và
YYYY-MM-DD HH:MM:SS
62. Lấy sự khác biệt giữa hai phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 trả về một phiên bản

Phiên bản

YYYY-MM-DD HH:MM:SS
67 đại diện cho sự thay đổi về thời gian giữa hai phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Đồng bằng trong tên là một tham chiếu đến chữ cái Hy Lạp delta, được sử dụng trong khoa học và kỹ thuật có nghĩa là một sự thay đổi. Bạn sẽ tìm hiểu thêm về cách sử dụng
YYYY-MM-DD HH:MM:SS
67 cho các phép tính số học tổng quát hơn

Cuối cùng là bản in, kể từ ngày 9 tháng 4 năm 2020 trước 9 giờ một chút. 30 giờ tối là

YYYY-MM-DD HH:MM:SS
0

Chỉ còn 397 ngày nữa là đến PyCon US 2021. Đầu ra này hơi lộn xộn, vì vậy bạn sẽ thấy cách bạn có thể cải thiện định dạng. Nếu bạn chạy tập lệnh này vào một ngày khác, bạn sẽ nhận được một kết quả khác. Nếu bạn chạy tập lệnh sau ngày 12 tháng 5 năm 2021 lúc 8. 00 giờ sáng, bạn sẽ nhận được một khoảng thời gian âm

Làm việc với múi giờ

Như bạn đã thấy trước đó, việc lưu trữ múi giờ trong đó một ngày diễn ra là một khía cạnh quan trọng để đảm bảo mã của bạn chính xác. Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 cung cấp
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5, đây là một lớp cơ sở trừu tượng cho phép
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
6 và
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
0 bao gồm thông tin múi giờ, bao gồm cả ý tưởng về thời gian tiết kiệm ánh sáng ban ngày

Tuy nhiên,

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 không cung cấp cách trực tiếp để tương tác với cơ sở dữ liệu múi giờ IANA. Tài liệu Python
YYYY-MM-DD HH:MM:SS
75 sử dụng gói của bên thứ ba có tên là
YYYY-MM-DD HH:MM:SS
76. Bạn có thể cài đặt
YYYY-MM-DD HH:MM:SS
76 với
YYYY-MM-DD HH:MM:SS
78

YYYY-MM-DD HH:MM:SS
1

Lưu ý rằng tên của gói mà bạn cài đặt từ PyPI,

YYYY-MM-DD HH:MM:SS
79, khác với tên mà bạn sử dụng để nhập gói, chỉ là
YYYY-MM-DD HH:MM:SS
76

Sử dụng YYYY-MM-DD HH:MM:SS 76 để thêm múi giờ vào Python >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7

Một lý do mà

YYYY-MM-DD HH:MM:SS
76 rất hữu ích là nó bao gồm một giao diện với cơ sở dữ liệu múi giờ IANA. Điều này giúp loại bỏ rắc rối khi chỉ định múi giờ cho các phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 của bạn. Hãy thử ví dụ này để xem cách đặt phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 để có múi giờ địa phương của bạn

>>>

YYYY-MM-DD HH:MM:SS
2

Trong ví dụ này, bạn nhập

YYYY-MM-DD HH:MM:SS
86 từ
YYYY-MM-DD HH:MM:SS
76 và
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 từ
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Sau đó, bạn tạo một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 được đặt thành thời điểm hiện tại bằng cách sử dụng
YYYY-MM-DD HH:MM:SS
91

Bạn cũng chuyển từ khóa

YYYY-MM-DD HH:MM:SS
86 cho
YYYY-MM-DD HH:MM:SS
91 và đặt
YYYY-MM-DD HH:MM:SS
86 bằng
YYYY-MM-DD HH:MM:SS
95. Trong
YYYY-MM-DD HH:MM:SS
76,
YYYY-MM-DD HH:MM:SS
95 trả về một thể hiện cụ thể của
YYYY-MM-DD HH:MM:SS
75. Điều này có nghĩa là nó có thể đại diện cho tất cả thông tin về thời gian tiết kiệm ánh sáng ban ngày và độ lệch múi giờ cần thiết mà
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 cần

Bạn cũng in tên của múi giờ bằng cách sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
00, sẽ in ra
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
01. Đây là đầu ra cho Windows, nhưng trên macOS hoặc Linux, đầu ra của bạn có thể là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
02 nếu bạn ở múi giờ miền Đông Hoa Kỳ trong mùa đông

Bạn cũng có thể tạo múi giờ không giống với múi giờ mà máy tính báo. Để làm điều này, bạn sẽ sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
03 và chuyển tên IANA chính thức cho múi giờ mà bạn quan tâm. Đây là một ví dụ về cách sử dụng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
03

>>>

YYYY-MM-DD HH:MM:SS
3

Trong ví dụ này, bạn sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
03 để truy xuất thông tin múi giờ cho Luân Đôn, Vương quốc Anh và lưu trữ thông tin đó trong
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
06. Sau đó, bạn truy xuất thời gian hiện tại, đặt múi giờ thành
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
06

Trên Windows, điều này mang lại cho thuộc tính

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 giá trị
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
09. Trên macOS hoặc Linux, thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 sẽ trông giống như
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
11, nhưng nó có thể hơi khác một chút tùy thuộc vào nơi mà
YYYY-MM-DD HH:MM:SS
76 lấy dữ liệu múi giờ từ đó

Bạn cũng sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
13 để in tên của múi giờ, hiện tại là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
14, nghĩa là Giờ chuẩn Greenwich. Đầu ra này giống nhau trên Windows, macOS và Linux

Trong phần trước, bạn đã biết rằng bạn không nên sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
15 để tạo phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 tại thời điểm UTC hiện tại. Bây giờ bạn đã biết cách sử dụng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
17 để cung cấp múi giờ cho phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Đây là một ví dụ được sửa đổi từ tài liệu Python

>>>

YYYY-MM-DD HH:MM:SS
4

Trong mã này, bạn sử dụng để đặt múi giờ của

 1>>> import dateparser
 2>>> dateparser.parse("yesterday")
 3datetime.datetime(2020, 3, 13, 14, 39, 1, 350918)
 4>>> dateparser.parse("morgen")
 5datetime.datetime(2020, 3, 15, 14, 39, 7, 314754)
0 thành múi giờ UTC. Phương pháp này được khuyên dùng hơn là sử dụng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
21 vì
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
21 trả về một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 ngây thơ, trong khi phương pháp được trình bày ở đây trả về một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 đã biết

Tiếp theo, bạn sẽ đi một vòng nhỏ để tìm hiểu về các trường hợp

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 ngây thơ và có nhận thức. Nếu bạn đã biết tất cả về điều này, thì bạn có thể cải thiện bộ đếm ngược PyCon của mình bằng thông tin múi giờ

Loại bỏ các quảng cáo

So sánh các trường hợp >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7 Naive và Aware Python

Phiên bản Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 hỗ trợ hai loại hoạt động, ngây thơ và nhận thức. Sự khác biệt cơ bản giữa chúng là các trường hợp ngây thơ không chứa thông tin múi giờ, trong khi các trường hợp nhận biết thì có. Chính thức hơn, để trích dẫn tài liệu Python

Một đối tượng nhận thức đại diện cho một thời điểm cụ thể không thể giải thích được. Một đối tượng ngây thơ không chứa đủ thông tin để định vị chính nó một cách rõ ràng so với các đối tượng ngày/giờ khác. ()

Đây là một điểm khác biệt quan trọng khi làm việc với Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 nhận biết có thể so sánh chính nó một cách rõ ràng với các phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 nhận biết khác và sẽ luôn trả về khoảng thời gian chính xác khi được sử dụng trong các phép toán số học

Mặt khác, các trường hợp

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 ngây thơ có thể mơ hồ. Một ví dụ về sự mơ hồ này liên quan đến thời gian tiết kiệm ánh sáng ban ngày. Các khu vực áp dụng tiết kiệm thời gian ban ngày vặn đồng hồ về phía trước một giờ vào mùa xuân và lùi lại một giờ vào mùa thu. Điều này thường xảy ra ở 2. 00 giờ sáng giờ địa phương. Vào mùa xuân, giờ từ 2. 00 giờ sáng đến 2. 59 giờ sáng không bao giờ xảy ra và vào mùa thu, giờ từ 1. 00 giờ sáng đến 1. 59 AM xảy ra hai lần

Trên thực tế, điều xảy ra là phần bù từ UTC ở các múi giờ này thay đổi trong suốt cả năm. IANA theo dõi những thay đổi này và lập danh mục chúng trong các tệp cơ sở dữ liệu khác nhau mà máy tính của bạn đã cài đặt. Sử dụng một thư viện như

YYYY-MM-DD HH:MM:SS
76, sử dụng cơ sở dữ liệu IANA bên dưới, là một cách tuyệt vời để đảm bảo rằng mã của bạn xử lý số học đúng cách theo thời gian

Ghi chú. Trong Python, sự khác biệt giữa các trường hợp

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 ngây thơ và nhận thức được xác định bởi thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5. Một thể hiện
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 nhận biết có thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 tương đương với một lớp con của lớp cơ sở trừu tượng
YYYY-MM-DD HH:MM:SS
75

Trăn 3. 8 trở xuống cung cấp một triển khai cụ thể của

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 được gọi là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
39. Tuy nhiên,
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
39 bị giới hạn trong việc biểu thị các độ lệch cố định từ UTC không thể thay đổi trong suốt cả năm, do đó, nó không hữu ích khi bạn cần tính đến các thay đổi, chẳng hạn như giờ mùa hè

Trăn 3. 9 bao gồm một mô-đun mới có tên là

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
41 cung cấp triển khai cụ thể của
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 theo dõi cơ sở dữ liệu IANA, do đó, mô-đun này bao gồm các thay đổi như thời gian tiết kiệm ánh sáng ban ngày. Tuy nhiên, cho đến Python 3. 9 được sử dụng rộng rãi, có thể dựa vào
YYYY-MM-DD HH:MM:SS
76 nếu bạn cần hỗ trợ nhiều phiên bản Python

YYYY-MM-DD HH:MM:SS
76 cũng cung cấp một số triển khai cụ thể của
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 trong mô-đun
YYYY-MM-DD HH:MM:SS
86 mà bạn đã sử dụng trước đó. Bạn có thể xem tài liệu
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
17 để biết thêm thông tin

Điều này không có nghĩa là bạn luôn cần sử dụng các phiên bản

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 nhận biết. Nhưng các trường hợp nhận biết là rất quan trọng nếu bạn đang so sánh thời gian với nhau, đặc biệt nếu bạn đang so sánh thời gian ở các khu vực khác nhau trên thế giới

Cải thiện bộ đếm ngược PyCon của bạn

Bây giờ bạn đã biết cách thêm thông tin múi giờ vào phiên bản Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7, bạn có thể cải thiện mã đếm ngược PyCon của mình. Trước đó, bạn đã sử dụng hàm tạo ____0_______7 tiêu chuẩn để chuyển năm, tháng, ngày và giờ mà PyCon sẽ bắt đầu. Bạn có thể cập nhật mã của mình để sử dụng mô-đun
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
51, mô-đun này cung cấp giao diện tự nhiên hơn để tạo phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7

YYYY-MM-DD HH:MM:SS
5

Trong mã này, bạn nhập

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
53 và
YYYY-MM-DD HH:MM:SS
86 từ
YYYY-MM-DD HH:MM:SS
76 và
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 từ
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Tiếp theo, bạn sử dụng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
58 để đọc ngày của PyCon US tiếp theo từ một chuỗi. Điều này dễ đọc hơn nhiều so với hàm tạo
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 đơn giản

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
58 trả về một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 ngây thơ, vì vậy bạn sử dụng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
62 để thay đổi
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
5 thành múi giờ
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
64. PyCon US 2021 sẽ diễn ra tại Pittsburgh, Pennsylvania, thuộc múi giờ Miền Đông Hoa Kỳ. Tên chuẩn cho múi giờ đó là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
64 vì Thành phố New York là thành phố lớn nhất trong múi giờ

YYYY-MM-DD HH:MM:SS
62 là một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 có nhận thức với múi giờ được đặt thành giờ Miền Đông Hoa Kỳ. Vì ngày 12 tháng 5 là sau khi giờ mùa hè có hiệu lực, tên múi giờ là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
68 hoặc
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
69

Tiếp theo, bạn tạo

# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 để biểu thị thời điểm hiện tại và cung cấp cho múi giờ địa phương của bạn. Cuối cùng, bạn tìm
YYYY-MM-DD HH:MM:SS
67 giữa
YYYY-MM-DD HH:MM:SS
62 và
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 và in kết quả. Nếu bạn đang ở một địa điểm không điều chỉnh đồng hồ theo giờ mùa hè, thì bạn có thể thấy số giờ còn lại cho đến khi PyCon thay đổi một giờ

Làm số học với Python >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7

Phiên bản Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 hỗ trợ một số loại số học. Như bạn đã thấy trước đó, điều này phụ thuộc vào việc sử dụng các phiên bản
YYYY-MM-DD HH:MM:SS
67 để biểu thị các khoảng thời gian.
YYYY-MM-DD HH:MM:SS
67 rất hữu ích vì nó được tích hợp vào thư viện chuẩn của Python. Đây là một ví dụ về cách làm việc với
YYYY-MM-DD HH:MM:SS
67

>>>

YYYY-MM-DD HH:MM:SS
6

Trong mã này, bạn tạo

# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5, lưu trữ thời gian hiện tại và
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
80, tức là
YYYY-MM-DD HH:MM:SS
67 của
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
82 ngày. Tiếp theo, bạn thêm
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 và
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
80 để tạo ra phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 vào một ngày nào đó trong tương lai. Lưu ý rằng làm việc với các trường hợp
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 ngây thơ, như bạn đang ở đây, có nghĩa là thuộc tính
>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)
9 của
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 tăng thêm một và không tính đến bất kỳ khoảng thời gian lặp lại hoặc bỏ qua nào

Các phiên bản

YYYY-MM-DD HH:MM:SS
67 cũng hỗ trợ các giá trị âm làm đầu vào cho các đối số

>>>

YYYY-MM-DD HH:MM:SS
7

Trong ví dụ này, bạn cung cấp

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
90 làm đầu vào cho
YYYY-MM-DD HH:MM:SS
67, vì vậy khi bạn thêm
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 và
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
93, kết quả là thuộc tính
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
94 bị giảm đi một

Phiên bản

YYYY-MM-DD HH:MM:SS
67 hỗ trợ phép cộng và phép trừ cũng như số nguyên dương và âm cho tất cả các đối số. Bạn thậm chí có thể cung cấp kết hợp các đối số tích cực và tiêu cực. Chẳng hạn, bạn có thể muốn cộng ba ngày và trừ đi bốn giờ

>>>

YYYY-MM-DD HH:MM:SS
8

Trong ví dụ này, bạn cộng ba ngày và trừ đi bốn giờ, do đó,

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 mới là ngày 29 tháng 1 lúc 5 giờ. 37 giờ sáng.
YYYY-MM-DD HH:MM:SS
67 rất hữu ích theo cách này, nhưng nó hơi hạn chế vì nó không thể cộng hoặc trừ các khoảng thời gian lớn hơn một ngày, chẳng hạn như một tháng hoặc một năm. May mắn thay,
YYYY-MM-DD HH:MM:SS
76 cung cấp một sự thay thế mạnh mẽ hơn gọi là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99

Cú pháp cơ bản của

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 rất giống với
YYYY-MM-DD HH:MM:SS
67. Bạn có thể cung cấp các đối số từ khóa tạo ra các thay đổi theo bất kỳ số năm, tháng, ngày, giờ, giây hoặc micro giây nào. Bạn có thể tạo lại ví dụ về
YYYY-MM-DD HH:MM:SS
67 đầu tiên bằng mã này

>>>

YYYY-MM-DD HH:MM:SS
9

Trong ví dụ này, bạn sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 thay vì
YYYY-MM-DD HH:MM:SS
67 để tìm
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 tương ứng với ngày mai. Bây giờ, bạn có thể thử cộng năm năm, một tháng và ba ngày vào
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 trong khi trừ đi bốn giờ ba mươi phút

>>>

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
0

Lưu ý trong ví dụ này rằng ngày kết thúc là ngày 1 tháng 3 năm 2025. Điều này là do thêm ba ngày vào

# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 sẽ là ngày 29 tháng 1 và thêm một tháng vào ngày đó sẽ là ngày 29 tháng 2, chỉ tồn tại trong năm nhuận. Vì năm 2025 không phải là năm nhuận nên ngày sẽ chuyển sang tháng tiếp theo

Bạn cũng có thể sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 để tính toán sự khác biệt giữa hai phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7. Trước đó, bạn đã sử dụng toán tử trừ để tìm sự khác biệt giữa hai phiên bản Python
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7,
YYYY-MM-DD HH:MM:SS
62 và
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5. Với
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99, thay vì sử dụng toán tử trừ, bạn cần chuyển hai thể hiện
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 làm đối số

>>>

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
1

Trong ví dụ này, bạn tạo một phiên bản

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 mới cho
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
80 bằng cách tăng trường
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
94 lên một. Sau đó, bạn sử dụng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 và chuyển
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 và
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
80 làm hai đối số.
YYYY-MM-DD HH:MM:SS
76 sau đó lấy sự khác biệt giữa hai trường hợp
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 này và trả về kết quả dưới dạng trường hợp
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99. Trong trường hợp này, sự khác biệt là
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
90 ngày, vì
# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 xảy ra trước
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
80

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
27 đồ vật có vô số công dụng khác. Bạn có thể sử dụng chúng để tìm thông tin lịch phức tạp, chẳng hạn như năm tới trong đó ngày 13 tháng 10 rơi vào Thứ Sáu hoặc ngày nào sẽ rơi vào Thứ Sáu cuối cùng của tháng hiện tại. Bạn thậm chí có thể sử dụng chúng để thay thế các thuộc tính của một phiên bản
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và tạo, ví dụ, một
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 một tuần trong tương lai lúc 10 giờ. 00 giờ sáng. Bạn có thể đọc tất cả về những cách sử dụng khác này trong
YYYY-MM-DD HH:MM:SS
76

Loại bỏ các quảng cáo

Kết thúc đếm ngược PyCon của bạn

Giờ đây, bạn đã có đủ công cụ để hoàn thành đồng hồ đếm ngược PyCon 2021 và cung cấp một giao diện đẹp mắt để sử dụng. Trong phần này, bạn sẽ sử dụng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 để tính toán thời gian còn lại cho đến khi có PyCon, phát triển một hàm để in thời gian còn lại ở định dạng đẹp và hiển thị ngày của PyCon cho người dùng

Sử dụng >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 99 trong Đếm ngược PyCon của bạn

Đầu tiên, thay thế toán tử trừ đơn giản bằng

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99. Với toán tử trừ, đối tượng
YYYY-MM-DD HH:MM:SS
67 của bạn không thể đếm các khoảng thời gian lớn hơn một ngày. Tuy nhiên,
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 cho phép bạn hiển thị số năm, tháng và ngày còn lại

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
2

Thay đổi duy nhất mà bạn đã thực hiện trong mã này là thay thế dòng 11 bằng

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
36. Đầu ra từ tập lệnh này sẽ cho bạn biết rằng PyCon US 2021 sẽ diễn ra sau khoảng một năm và một tháng, tùy thuộc vào thời điểm bạn chạy tập lệnh

Tuy nhiên, kết quả đó không đẹp lắm vì nó trông giống như chữ ký của

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
37. Bạn có thể xây dựng một số đầu ra đẹp hơn bằng cách thay thế dòng 11 trong mã trước đó bằng mã bên dưới

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
3

Mã này yêu cầu Python 3. 8 vì nó sử dụng cái mới. Bạn có thể làm cho tập lệnh này hoạt động trên các phiên bản Python cũ hơn bằng cách sử dụng vòng lặp truyền thống

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
38 thay cho dòng 17

Trong mã này, bạn định nghĩa

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
39, nhận hai đối số, đơn vị thời gian và đối tượng
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
99 mà đơn vị thời gian sẽ được truy xuất từ ​​đó. Nếu lượng thời gian không bằng 0, thì
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
39 trả về một chuỗi có lượng thời gian và đơn vị thời gian. Nếu không, nó trả về một chuỗi rỗng

Bạn sử dụng

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
39 trong phần hiểu ở dòng 17. Dòng đó tạo một trình tạo lưu trữ các chuỗi không trống được trả về từ
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
39. Nó sử dụng the để gán giá trị trả về của
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
39 cho
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
45 và chỉ bao gồm
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
45 nếu nó là
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
47

Cuối cùng, dòng 18 in đầu ra cuối cùng bằng cách sử dụng trên trình tạo. Tiếp theo, bạn sẽ xem xét việc đưa ngày PyCon vào đầu ra từ tập lệnh của mình

Hiển thị Ngày PyCon trong Đếm ngược PyCon của bạn

, bạn đã tìm hiểu về cách tạo phiên bản

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 bằng cách sử dụng
YYYY-MM-DD HH:MM:SS
16. Phương pháp này sử dụng một ngôn ngữ nhỏ đặc biệt trong Python để chỉ định cách định dạng chuỗi ngày

Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 có một phương thức bổ sung gọi là
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
52 cho phép bạn định dạng một thể hiện
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 thành một chuỗi. Theo một nghĩa nào đó, đó là hoạt động ngược lại của việc phân tích cú pháp bằng cách sử dụng
YYYY-MM-DD HH:MM:SS
16. Bạn có thể phân biệt giữa hai phương pháp bằng cách ghi nhớ rằng
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
55 trong
YYYY-MM-DD HH:MM:SS
16 là viết tắt của phân tích cú pháp và
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
57 trong
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
52 là viết tắt của định dạng

Trong bộ đếm ngược PyCon của bạn, bạn có thể sử dụng

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
52 để in đầu ra nhằm cho người dùng biết ngày PyCon US sẽ bắt đầu. Hãy nhớ rằng, bạn có thể tìm thấy các mã định dạng mà bạn muốn sử dụng trên strftime. tổ chức. Bây giờ hãy thêm mã này vào dòng 18 của tập lệnh đếm ngược PyCon của bạn

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
4

Trong mã này, dòng 18 sử dụng

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
52 để tạo một chuỗi biểu thị ngày bắt đầu của PyCon US 2021. Đầu ra bao gồm ngày trong tuần, tháng, ngày, năm, giờ, phút, AM hoặc PM và múi giờ

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
5

Dòng 19 bạn in chuỗi này cho người dùng xem kèm theo một số văn bản giải thích. Dòng cuối cùng in lượng thời gian còn lại cho đến ngày bắt đầu PyCon. Tiếp theo, bạn sẽ hoàn thành tập lệnh của mình để giúp người khác sử dụng lại dễ dàng hơn

Loại bỏ các quảng cáo

Hoàn thiện bộ đếm ngược PyCon của bạn

Bước cuối cùng mà bạn muốn thực hiện là tuân theo các phương pháp hay nhất của Python và đặt mã tạo đầu ra vào hàm

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
61. Bạn có thể xem toàn bộ mã cuối cùng sau khi áp dụng tất cả các thay đổi này

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
6

Trong mã này, bạn di chuyển

>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
62 và mã được sử dụng cho trình tạo thành
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
61. Ở dòng 23, bạn sử dụng mệnh đề bảo vệ để đảm bảo rằng
>>> from datetime import date, time, datetime
>>> today = date.today()
>>> today
datetime.date(2020, 1, 24)
>>> now = datetime.now()
>>> now
datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
>>> current_time = time(now.hour, now.minute, now.second)
>>> datetime.combine(today, current_time)
datetime.datetime(2020, 1, 24, 14, 4, 57)
61 chỉ chạy khi tệp này được thực thi dưới dạng tập lệnh. Điều này cho phép những người khác nhập mã của bạn và sử dụng lại
YYYY-MM-DD HH:MM:SS
62 chẳng hạn, nếu họ muốn

Bây giờ bạn có thể sửa đổi tập lệnh này bao nhiêu tùy thích. Một điều thú vị có thể làm là cho phép người dùng thay đổi múi giờ được liên kết với

# pyconcd.py

from datetime import datetime

PYCON_DATE = datetime(year=2021, month=5, day=12, hour=8)
countdown = PYCON_DATE - datetime.now()
print(f"Countdown to PyCon US 2021: {countdown}")
5 bằng cách chuyển đối số dòng lệnh. Bạn cũng có thể thay đổi
YYYY-MM-DD HH:MM:SS
62 thành thứ gì đó gần nhà hơn, chẳng hạn như PyCon Châu Phi hoặc EuroPython

Để hào hứng hơn nữa về PyCon, hãy xem Real Python tại PyCon US 2019 và Cách tận dụng tối đa PyCon

Các lựa chọn thay thế cho Python >>> from datetime import date, time, datetime >>> date(year=2020, month=1, day=31) datetime.date(2020, 1, 31) >>> time(hour=13, minute=14, second=31) datetime.time(13, 14, 31) >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31) datetime.datetime(2020, 1, 31, 13, 14, 31) 7 và YYYY-MM-DD HH:MM:SS 76

Python

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và
YYYY-MM-DD HH:MM:SS
76 là sự kết hợp mạnh mẽ giữa các thư viện khi bạn làm việc với ngày và giờ.
YYYY-MM-DD HH:MM:SS
76 thậm chí còn được đề xuất trong tài liệu Python. Tuy nhiên, có nhiều thư viện khác mà bạn có thể sử dụng để làm việc với ngày và giờ trong Python. Một số trong số này dựa vào
>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và
YYYY-MM-DD HH:MM:SS
76, trong khi một số khác là sự thay thế hoàn toàn độc lập

  • pytz cung cấp thông tin múi giờ tương tự như
    YYYY-MM-DD HH:MM:SS
    
    76. Nó sử dụng một giao diện hơi khác so với
    YYYY-MM-DD HH:MM:SS
    
    75 tiêu chuẩn, vì vậy hãy lưu ý các vấn đề tiềm ẩn nếu bạn quyết định sử dụng nó
  • Arrow cung cấp dịch vụ thay thế tùy chọn cho
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7. Nó lấy cảm hứng từ
    >>> from datetime import date, time, datetime
    >>> today = date.today()
    >>> today
    datetime.date(2020, 1, 24)
    >>> now = datetime.now()
    >>> now
    datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
    >>> current_time = time(now.hour, now.minute, now.second)
    >>> datetime.combine(today, current_time)
    datetime.datetime(2020, 1, 24, 14, 4, 57)
    
    78, vì vậy nếu bạn đến từ lĩnh vực phát triển web, thì đây có thể là một giao diện quen thuộc hơn
  • Con lắc cung cấp một sự thay thế thả xuống khác cho
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7. Nó bao gồm giao diện múi giờ và triển khai
    YYYY-MM-DD HH:MM:SS
    
    67 được cải tiến
  • Maya cung cấp một giao diện tương tự như
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7. Nó dựa vào Con lắc cho các phần của thư viện phân tích cú pháp
  • dateparser cung cấp một giao diện để tạo ra các thể hiện
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 từ văn bản mà con người có thể đọc được. Nó linh hoạt và hỗ trợ nhiều ngôn ngữ

Ngoài ra, nếu bạn làm việc nhiều với NumPy, Pandas hoặc các gói khoa học dữ liệu khác, thì có một số tùy chọn có thể hữu ích cho bạn

  • NumPy cung cấp một API tương tự như thư viện Python
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 tích hợp, nhưng phiên bản NumPy có thể được sử dụng trong các mảng
  • Pandas cung cấp hỗ trợ cho dữ liệu chuỗi thời gian trong DataFrames, thường là các giá trị tuần tự của các sự kiện dựa trên thời gian, bằng cách sử dụng mô-đun NumPy
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7
  • cftime cung cấp hỗ trợ cho các lịch khác với lịch Gregorian tiên sinh cũng như các đơn vị thời gian khác tuân theo các quy ước về Khí hậu và Dự báo (CF). Nó được sử dụng bởi gói
    >>> from datetime import date, time, datetime
    >>> today = date.today()
    >>> today
    datetime.date(2020, 1, 24)
    >>> now = datetime.now()
    >>> now
    datetime.datetime(2020, 1, 24, 14, 4, 57, 10015)
    >>> current_time = time(now.hour, now.minute, now.second)
    >>> datetime.combine(today, current_time)
    datetime.datetime(2020, 1, 24, 14, 4, 57)
    
    85 để cung cấp hỗ trợ chuỗi thời gian

Đọc thêm

Vì lập trình theo thời gian có thể rất phức tạp nên có rất nhiều tài nguyên trên web giúp bạn tìm hiểu thêm về nó. May mắn thay, đây là một vấn đề mà nhiều người làm việc với mọi ngôn ngữ lập trình đã nghĩ đến, vì vậy bạn thường có thể tìm thấy thông tin hoặc công cụ để trợ giúp cho bất kỳ vấn đề nào mà bạn có thể gặp phải. Đây là danh sách chọn lọc các bài báo và video mà tôi thấy hữu ích khi viết hướng dẫn này

  • Thời gian tiết kiệm ánh sáng ban ngày và thực tiễn tốt nhất về múi giờ
  • Lưu trữ UTC không phải là Viên đạn bạc
  • Cách lưu ngày giờ cho các sự kiện trong tương lai
  • Các phương pháp mã hóa tốt nhất bằng cách sử dụng DateTime trong. Nền tảng NET
  • Yêu máy tính. Vấn đề với Thời gian & Múi giờ
  • Sự phức tạp của lập trình dữ liệu thời gian

Ngoài ra, Paul Ganssle là người đóng góp cốt lõi cho CPython và là người duy trì hiện tại của

YYYY-MM-DD HH:MM:SS
76. Các bài báo và video của anh ấy là một nguồn tài nguyên tuyệt vời cho người dùng Python

  • Làm việc với Múi giờ. Mọi thứ bạn ước mình không cần biết (PyCon 2019)
  • pytz. Khẩu súng ngắn nhanh nhất ở phương Tây
  • Ngừng sử dụng utcnow và utcfromtimestamp
  • Một trường hợp tò mò về so sánh thời gian không chuyển tiếp

Phần kết luận

Trong hướng dẫn này, bạn đã học về lập trình với ngày tháng và thời gian và tại sao nó thường dẫn đến sai sót và nhầm lẫn. Bạn cũng đã học về các mô-đun

>>> from datetime import date, time, datetime
>>> date(year=2020, month=1, day=31)
datetime.date(2020, 1, 31)
>>> time(hour=13, minute=14, second=31)
datetime.time(13, 14, 31)
>>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
datetime.datetime(2020, 1, 31, 13, 14, 31)
7 và
YYYY-MM-DD HH:MM:SS
76 của Python cũng như cách làm việc với các múi giờ trong mã của bạn

Bây giờ bạn có thể

  • Lưu trữ ngày ở định dạng tốt, phù hợp với tương lai trong các chương trình của bạn
  • Tạo các phiên bản Python
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 với các chuỗi được định dạng
  • Thêm thông tin múi giờ vào các phiên bản
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 với
    YYYY-MM-DD HH:MM:SS
    
    76
  • Thực hiện các phép toán số học với các phiên bản
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    7 bằng cách sử dụng
    >>> from datetime import date, time, datetime
    >>> date(year=2020, month=1, day=31)
    datetime.date(2020, 1, 31)
    >>> time(hour=13, minute=14, second=31)
    datetime.time(13, 14, 31)
    >>> datetime(year=2020, month=1, day=31, hour=13, minute=14, second=31)
    datetime.datetime(2020, 1, 31, 13, 14, 31)
    
    99

Cuối cùng, bạn đã tạo một tập lệnh đếm ngược thời gian còn lại cho đến PyCon US tiếp theo để bạn có thể hào hứng với cuộc tụ tập Python lớn nhất xung quanh. Ngày và giờ có thể phức tạp, nhưng với các công cụ Python này trong kho vũ khí của bạn, bạn đã sẵn sàng để giải quyết những vấn đề khó khăn nhất

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Sử dụng Mô-đun datetime của Python

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Python tính thứ hai như thế nào?

Gửi cho tôi thủ thuật Python »

Giới thiệu về Bryan Weber

Python tính thứ hai như thế nào?
Python tính thứ hai như thế nào?

Bryan là nhà phát triển cốt lõi của Cantera, nền tảng mã nguồn mở cho nhiệt động lực học, động học hóa học và vận chuyển. Là một nhà phát triển nói chung, Bryan thực hiện Python từ web đến khoa học dữ liệu và mọi nơi ở giữa

» Thông tin thêm về Bryan


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Python tính thứ hai như thế nào?

Aldren

Python tính thứ hai như thế nào?

Geir Arne

Python tính thứ hai như thế nào?

Joanna

Python tính thứ hai như thế nào?

Gia-cốp

Python tính thứ hai như thế nào?

Mirko

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Làm thế nào để Python tính toán các ngày trong tuần?

Lấy số ngày làm việc (các ngày trong tuần) giữa hai ngày mà không bị numpy .
Đầu tiên, lặp lại từ ngày bắt đầu đến ngày kết thúc một ngày bằng cách sử dụng hàm for loop và range()
Sử dụng hàm weekday() để kiểm tra xem ngày đó là ngày trong tuần hay cuối tuần
Nếu đó là một ngày trong tuần, sau đó thêm nó vào số lượng
In số cuối cùng

Làm cách nào để kiểm tra xem có phải là Thứ Hai trong Python không?

Mã ví dụ .
từ ngày nhập datetime
# Trích xuất ngày hôm nay
hôm nay = ngày. hôm nay()
nếu hôm nay. ngày trong tuần() == 0
print("Hôm nay là. Thứ hai")
yêu tinh hôm nay. ngày trong tuần() == 1
print("Hôm nay là. Thứ ba")

Python tính toán ngày hôm sau như thế nào?

Trường hợp 1. Ngày hệ thống không được định dạng trong Python .
Current_Date = ngày giờ. ngày giờ. Hôm nay()
Previous_Date = ngày giờ. ngày giờ. hôm nay () – ngày giờ. múi giờ(ngày=1)
NextDay_Date = ngày giờ. ngày giờ. hôm nay() + ngày giờ. múi giờ(ngày=1)

Làm cách nào để kiểm tra xem hôm nay có phải là thứ Hai trong Python datetime không?

từ ngày giờ nhập ngày giờ # Nếu hôm nay là Thứ Hai (0 = Thứ Hai, 1 = Thứ Ba, 2 = Ôn. ) if datetime. hôm nay(). ngày trong tuần() == 0. print("Vâng, Hôm nay là Thứ Hai") other. in("Không. ")