Hướng dẫn how to store time in python - cách lưu trữ thời gian trong python

Chỉ cần lưu trữ nó theo cách bạn muốn, sau đó sử dụng phương pháp

>>> import time
>>> time.time()
1579718137.550164
6 của các đối tượng
>>> import time
>>> time.time()
1579718137.550164
7 và so sánh.

Show
from datetime import datetime
dt1 = datetime(2008, 1, 1, 16, 0, 0)
dt2 = datetime(2008, 4, 7, 13, 30, 0)

print(dt1.time() > dt2.time())    # True

Bạn cũng có thể biến các dữ liệu của mình thành các đối tượng DateTime ngây thơ nếu bạn muốn thực hiện số học "đồng hồ treo tường" trên chúng (trái ngược với số học "dòng thời gian", nên được thực hiện với UTC

>>> import time
>>> time.time()
1579718137.550164
7s):

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng mô -đun DateTime của Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using Python's datetime Module

Làm thế nào để bạn lưu trữ giá trị thời gian trong Python?

>>> import time
>>> time.time()
1579718137.550164
7 module can help you manage the complex nature of dates and times.

%m cho số lượng không có viền của tháng (01, 02, Hồi, 12). Ngoài ra còn có %-M để tránh sử dụng số 0 hàng đầu (1, 2,,, 12) %y trong năm (1999, 2021, Hồi) %h cho giờ trong ngày (24 giờ) không được đệm ( 00, 01, xông, 23) hoặc %-H để loại bỏ số 0 hàng đầu (0, 1, Hồi, 23)

  • Làm thế nào để bạn hiển thị thời gian trong Python?dates and times is such a challenge
  • Để có cả hàm DateTime ngày và giờ hiện tại. Hàm này trả về ngày và giờ địa phương hiện tại.Python
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7
    module
  • Có kiểu dữ liệu thời gian trong Python không?print or read a date and time in a specific format
  • Trong Python, ngày và thời gian không phải là một loại dữ liệu của riêng họ, nhưng một mô -đun có tên DateTime có thể được nhập để hoạt động với ngày cũng như thời gian. Mô -đun DateTime Python được tích hợp vào Python, do đó không cần phải cài đặt bên ngoài. Mô -đun Datetime Python cung cấp cho các lớp để làm việc theo ngày và giờ.arithmetic with dates and times

Làm thế nào để bạn đặt thời gian trong Python?

Làm thế nào để có được ngày và giờ hiện tại trong Python.

Dòng lệnh / cửa sổ thiết bị đầu cuối truy cập. ....

Tùy chọn để hình thành DateTime. ....

Sử dụng strftime () để hiển thị thời gian và ngày. ....daylight saving time. In the United States and Canada, clocks are set forward by one hour on the second Sunday in March and set back by one hour on the first Sunday in November. However, this has only been the case since 2007. Prior to 2007, clocks were set forward on the first Sunday in April and set back on the last Sunday in October.

Lưu và đóng tập tin. ....time zones. Ideally, time zone boundaries would follow lines of longitude exactly. However, for historical and political reasons, time zone lines are rarely straight. Often, areas that are separated by large distances find themselves in the same time zone, and adjacent areas are in different time zones. There are some time zones out there with pretty funky shapes.

Cách tính thời gian của máy tính

Gần như tất cả các máy tính đều đếm thời gian từ một thời điểm được gọi là Epoch 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 thời gian phối hợp phổ quát và đề cập đến thời gian ở kinh độ 0 °. UTC thường được gọi là thời gian trung bình của Greenwich, hoặc GMT. UTC không được điều chỉnh cho thời gian tiết kiệm ánh sáng ban ngày, vì vậy nó luôn giữ hai mươi bốn giờ mỗi ngày.Unix epoch. This occurred on January 1, 1970, at 00:00:00 UTC. UTC stands for Coordinated Universal Time and refers to the time at a longitude of 0°. UTC is often also called Greenwich Mean Time, or GMT. UTC is not adjusted for daylight saving time, so it consistently keeps twenty-four hours in every day.

Theo định nghĩa, thời gian UNIX trôi qua với tốc độ tương đương 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ờ ở UTC của bất kỳ tức thời nào kể từ ngày 1 tháng 1 năm 1970, bằng cách đếm số giây kể từ thời đại Unix, ngoại trừ những giây nhảy. Bước nhảy vọt đôi khi được thêm vào UTC để giải thích cho sự chậm lại của vòng quay Trái đất nhưng không được thêm vào thời gian UNIX.leap seconds. Leap seconds are occasionally added to UTC to account for the slowing of the Earth’s rotation but are not added to Unix time.

Gần như tất cả các ngôn ngữ lập trình, bao gồm Python, kết hợp khái niệm về thời gian Unix. Thư viện tiêu chuẩn Python sườn bao gồm một mô -đun có tê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)
1 có thể in số giây kể từ thời đại 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)
1 và thực 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)
3 để in thời gian Unix hoặc số giây (không bao gồm các giây nhảy) kể từ thời đại.

Ngoài thời gian UNIX, máy tính cần một cách để truyền tải thông tin thời gian cho người dùng. Như bạn đã thấy trong ví dụ cuối cùng, thời gian Unix gần như không thể phân tích được. 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 thời gian cục bộ bằng cách sử dụng độ lệch múi giờ.time zone offsets.

Internet được chỉ định các số cơ quan (IANA) duy trì một cơ sở dữ liệu của 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 bất kỳ thay đổi nào trong độ 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 có thể bao gồm một bản sao cập nhật.Internet Assigned Numbers Authority (IANA) maintains a database of all of the values of time zone offsets. IANA also releases regular updates that include any changes in time zone offsets. This database is often included with your operating system, although certain applications may include an updated copy.

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 họ bù đắp 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ờ phía đông của Hoa Kỳ có phần bù -05: 00 hoặc năm giờ âm từ UTC. Các khu vực khác có độ lệch khác nhau, có thể không phải là giờ nguyên. Ví dụ, độ bù của UTC cho Nepal là +05: 45 hoặc năm giờ tích cực và bốn mươi lăm phút từ UTC.

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

Thời gian Unix là cách tính thời gian của máy tính, nhưng sẽ không hiệu quả đến mức không 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 về các năm, tháng, ngày, v.v. Nhưng ngay cả với các 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à văn hóa khác nhau có cách viết ngày khác nhau.

Ví dụ, ở Hoa Kỳ, ngày thường được viết bắt đầu với tháng, sau đó là ngày, sau đó là 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 với phiên bản viết dài của ngày.01-31-2020. This closely matches the long-form written version of the date.

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 từ ngày, sau đó là tháng, sau đó là 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 tất cả các loại nhầm lẫn khi giao tiếp giữa các nền văn hóa.31-01-2020. These differences can cause all sorts of confusion when communicating across cultures.

Để giúp tránh các sai lầm truyền thông, 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 nên được viết theo thứ tự dữ liệu có ý nghĩa nhất. Điều này có nghĩa là định dạng là năm, tháng, ngày, giờ, phút và thứ hai:ISO 8601. This standard specifies that all dates should be written in order of most-to-least-significant data. This means the format is year, month, day, hour, minute, and second:

Trong ví dụ 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)
4 đại diện cho một năm bốn chữ số 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)
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)
6 là hai tháng và ngày, bắt đầu bằng số 0 nếu cần thiết. Sau đó,
>>> 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)
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)
9 đại diện cho hai giờ, phút và giây, bắt đầu bằng số 0 nếu cần thiết.

Ưu điểm của định dạng này là ngày có thể được biểu diễn không có sự mơ hồ. 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)
0 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)
1 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 sau về cách bạn có thể sử dụng định dạng ISO 8601 với Python
>>> import time
>>> time.time()
1579718137.550164
7.

Cách lưu trữ thời gian trong chương trình của bạn

Hầu hết các nhà phát triển đã làm việc theo thời gian đã nghe lời khuyên để chuyển đổi thời gian địa phương sang 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 lưu trữ ngày từ quá khứ, đây là thông tin đủ để thực hiện bất kỳ số học cần thiết nào.

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

Trong trường hợp này, bạn cần lưu trữ thời gian địa phương, bao gồm 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 thời gian địa phương sang UTC. Tuy nhiên, cách tiếp cận này đã giành chiến thắng luôn cho phép bạn chuyển đổi UTC sang đúng giờ địa phương.

Sử dụng mô -đun Python >>> import time >>> time.time() 1579718137.550164 7

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

  1. >>> 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ịch đầu ra và cung cấp các chức năng bằng lịch Gregorian lý tưởng hóa.
    outputs calendars and provides functions using an idealized Gregorian calendar.
  2. >>> import time
    >>> time.time()
    1579718137.550164
    
    7 Cung cấp các lớp học để thao tác ngày và thời gian.
    supplies classes for manipulating dates and times.
  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)
    
    1 cung cấp các chức năng liên quan đến thời gian nơi không cần ngày.
    provides time-related functions where dates are not needed.

Trong hướng dẫn này, bạn sẽ tập trung vào việc sử dụng mô -đun Python ____27. Trọng tâm chính của

>>> import time
>>> time.time()
1579718137.550164
7 là làm cho nó bớt phức tạp hơn khi truy cập các thuộc tính của đối tượng liên quan đến ngày, thời gian và múi giờ. Vì các đối tượng này rất hữu ích,
>>> 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 cũng trả về các phiên bản của các lớp từ
>>> import time
>>> time.time()
1579718137.550164
7.
>>> import time
>>> time.time()
1579718137.550164
7
module. The main focus of
>>> import time
>>> time.time()
1579718137.550164
7 is to make it less complicated to access attributes of the object related to dates, times, and time zones. Since these objects are so useful,
>>> 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 also returns instances of classes from
>>> import time
>>> time.time()
1579718137.550164
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)
1 ít mạnh mẽ và phức tạp hơn để sử dụng so với
>>> import time
>>> time.time()
1579718137.550164
7. Nhiều chức năng 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)
1 trả về một ví dụ
>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)
4 đặc biệt. Đối tượng này có giao diện Tuple được đặt tên để truy cập dữ liệu được lưu trữ, làm cho nó tương tự như một thể hiện là
>>> import time
>>> time.time()
1579718137.550164
7. Tuy nhiên, nó không hỗ trợ tất cả các tính năng của
>>> import time
>>> time.time()
1579718137.550164
7, đặc biệt là khả năng thực hiện số học với các giá trị thời gian.
>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)
4
instance. This object has a named tuple interface for accessing stored data, making it similar to an instance of
>>> import time
>>> time.time()
1579718137.550164
7. However, it doesn’t support all of the features of
>>> import time
>>> time.time()
1579718137.550164
7, especially the ability to perform arithmetic with time values.

>>> import time
>>> time.time()
1579718137.550164
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. >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 là một ngày lý tưởng hóa giả định lịch Gregorian mở rộng vô hạn vào tương lai và quá khứ. Đối tượng này lưu trữ
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    9,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    0 và
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    1 dưới dạng thuộc tính.
    is an idealized date that assumes the Gregorian calendar extends infinitely into the future and past. This object stores the
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    9,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    0, and
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    1 as attributes.
  2.  1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    2 là một thời gian lý tưởng hóa giả định rằng có 86.400 giây mỗi ngày mà không có giây nhảy. Đố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"
    
    3,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    4,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    5,
     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"
    
    7 (thông tin múi giờ).
    is an idealized time that assumes there are 86,400 seconds per day with no leap seconds. This object stores the
     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,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    5,
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    6, and
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    7 (time zone information).
  3.  1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    8 là sự kết hợp của
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    9 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)
    
    1. Nó có tất cả các thuộc tính của cả hai lớp.
    is a combination of a
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    9 and 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)
    
    1. It has all the attributes of both classes.

Tạo các trường hợp Python >>> import time >>> time.time() 1579718137.550164 7

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

>>> import time
>>> time.time()
1579718137.550164
7 có bộ khởi tạo tương tự. Chúng có thể được khởi tạo bằng cách truyề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)
9,
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
9 hoặc
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
3. Bạn có thể thử mã bên dưới để hiểu cách tạo mỗi đối tượng:initializers. They can be instantiated by passing keyword arguments for each of the attributes, such as
>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)
9,
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
9, or
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
3. You can try the code below to get a sense of how each object is created:

>>>

>>> 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ừ

>>> import time
>>> time.time()
1579718137.550164
7 và khởi tạo từng lớp bằng cách chuyển các đối số cho hàm tạo. Bạn có thể thấy rằng mã này có phần dài dòng và nếu bạn không có thông tin bạn cần làm số nguyên, các kỹ thuật này có thể được sử dụng để tạo các trường hợp ____27.instantiate each of them by passing arguments to the constructor. You can see that this code is somewhat verbose, and if you don’t have the information you need as integers, these techniques can’t be used to create
>>> import time
>>> time.time()
1579718137.550164
7 instances.

May mắn thay,

>>> import time
>>> time.time()
1579718137.550164
7 cung cấp một số cách thuận tiện khác để tạo các trường hợp
>>> import time
>>> time.time()
1579718137.550164
7. Các phương pháp này don lồng yêu cầu bạn sử dụng số nguyên để chỉ định từng thuộc tính, nhưng thay vào đó cho phép bạn sử dụng một số thông tin khác:

  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}")
    
    0 tạo ra một thể hiện
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 với ngày địa phương hiện tại.
    creates a
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 instance with the current local date.
  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}")
    
    2 tạo ra một thể hiện
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    8 với ngày và giờ địa phương hiện tại.
    creates a
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    8 instance with the current local date and time.
  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}")
    
    4 kết hợp các trường hợp của
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 và
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    2 thành một ví dụ
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    8 duy nhất.
    combines instances of
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 and
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    2 into a single
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    8 instance.

Ba cách tạo ra các trường hợp

>>> import time
>>> time.time()
1579718137.550164
7 này rất hữu ích khi bạn không biết trước những thông tin bạn cần truyền vào các bộ khởi tạo cơ bản. Bạn có thể thử mã này để xem cách khởi tạo thay thế hoạt độ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)

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

>>> import time
>>> time.time()
1579718137.550164
7 và khởi tạo từng lớp bằng cách chuyển các đối số cho hàm tạo. Bạn có thể thấy rằng mã này có phần dài dòng và nếu bạn không có thông tin bạn cần làm số nguyên, các kỹ thuật này có thể được sử dụng để tạo các trường hợp ____27.

  1. May mắn thay,
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 cung cấp một số cách thuận tiện khác để tạo các trường hợp
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7. Các phương pháp này don lồng yêu cầu bạn sử dụng số nguyên để chỉ định từng thuộc tính, nhưng thay vào đó cho phép bạn sử dụng một số thông tin khác:
    is a
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    9 instance that has only the year, month, and day.
  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}")
    
    0 tạo ra một thể hiện
    >>> from datetime import date
    >>> date.fromisoformat("2020-01-31")
    datetime.date(2020, 1, 31)
    
    8 với ngày địa phương hiện tại.
    is a
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 instance that has the year, month, day, hour, minute, second, and microseconds.
  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}")
    
    2 tạo ra một thể hiện
     1>>> date_string = "01-31-2020 14:45:37"
     2>>> format_string = "%m-%d-%Y %H:%M:%S"
    
    8 với ngày và giờ địa phương hiện tại.
    is 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)
    
    1 instance that has the hour, minute, and second set to the same values as
    Countdown to PyCon US 2021: 397 days, 10:35:32.139350
    
    7.

# 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}")
4 kết hợp các trường hợp của
>>> from datetime import date
>>> date.fromisoformat("2020-01-31")
datetime.date(2020, 1, 31)
8 và
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
2 thành một ví dụ
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
8 duy nhất.

Ba cách tạo ra các trường hợp >>> import time >>> time.time() 1579718137.550164 7 này rất hữu ích khi bạn không biết trước những thông tin bạn cần truyền vào các bộ khởi tạo cơ bản. Bạn có thể thử mã này để xem cách khởi tạo thay thế hoạt động:

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

# 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}")
0,
# 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}")
2 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}")
4 để tạo các trường hợp 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"
9,
>>> import time
>>> time.time()
1579718137.550164
7 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)
1. Mỗi trường hợp được lưu trữ trong một biến khác nhau:

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 thể hiện

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
9 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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
09 để tạo phiên bản
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
9 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 điều gì sẽ xảy ra nếu bạn có một chuỗi đại diện cho một ngày và giờ nhưng isn ở định dạng ISO 8601?

May mắn thay, Python

>>> import time
>>> time.time()
1579718137.550164
7 cung cấp một phương pháp gọi là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12 để xử lý tình huống này. Phương pháp này sử dụng ngôn ngữ nhỏ đặc biệt để cho Python biết phần nào của chuỗi được liên kết với các thuộc tính
>>> import time
>>> time.time()
1579718137.550164
7.mini-language to tell Python which parts of the string are associated with the
>>> import time
>>> time.time()
1579718137.550164
7 attributes.

Để xây dựng một

>>> import time
>>> time.time()
1579718137.550164
7 từ một chuỗi bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12, bạn phải nói Python những gì mỗi phần của chuỗi đại diện cho các mã định dạng từ ngôn ngữ nhỏ. Bạn có thể thử ví dụ này để xem cách
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12 hoạt động:

>>>

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

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
09 để tạo phiên bản
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
9 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 điều gì sẽ xảy ra nếu bạn có một chuỗi đại diện cho một ngày và giờ nhưng isn ở định dạng ISO 8601?line 1, you create
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17, which represents the date and time January 31, 2020, at 2:45:37 PM. On line 2, you create
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
18, which uses the mini-language to specify how the parts of
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17 will be turned into
>>> import time
>>> time.time()
1579718137.550164
7 attributes.

May mắn thay, Python

>>> import time
>>> time.time()
1579718137.550164
7 cung cấp một phương pháp gọi là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12 để xử lý tình huống này. Phương pháp này sử dụng ngôn ngữ nhỏ đặc biệt để cho Python biết phần nào của chuỗi được liên kết với các thuộc tính
>>> import time
>>> time.time()
1579718137.550164
7.

Để xây dựng một
>>> import time
>>> time.time()
1579718137.550164
7 từ một chuỗi bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12, bạn phải nói Python những gì mỗi phần của chuỗi đại diện cho các mã định dạng từ ngôn ngữ nhỏ. Bạn có thể thử ví dụ này để xem cách
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12 hoạt động:
Trên dòng 1, bạn tạo
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17, đại diện cho ngày và giờ ngày 31 tháng 1 năm 2020, lúc 2:45:37 tối. Trên dòng 2, bạn tạo
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
18, sử dụng ngôn ngữ nhỏ để chỉ định cách các phần của
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17 sẽ được biến thành các thuộc tính
>>> import time
>>> time.time()
1579718137.550164
7.
Trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
18, bạn bao gồm một số mã định dạng và tất cả các dấu gạch ngang (
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
22), đại phân (
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
23) và không gian chính xác như chúng xuất hiện trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17. Để xử lý ngày và giờ trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17, bạn bao gồm các mã định dạng sau:
Thành phầnMã số2020
Giá trịNăm (như số nguyên bốn chữ số)01
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
26
Tháng (dưới dạng số thập phân không)31
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
27
Ngày (dưới dạng số thập phân không)14
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
28
Giờ (như số thập phân bằng không với đồng hồ 24 giờ)45
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
29
Phút (như số thập phân bằng không)37

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
30

Thứ hai (như số thập phân bằng không)

>>>

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
31line 3 and use
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
37 with
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17 and
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
18 on line 4. Finally, line 5 shows the values of the attributes in the
>>> import time
>>> time.time()
1579718137.550164
7 instance created by
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12. You can see that they match the values shown in the table above.

Một danh sách đầy đủ tất cả các tùy chọn trong 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 trong tài liệu Python, và trên một trang web có tên strftime.org.

Bây giờ

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17 và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
18 đã được xác định, bạn có thể sử dụng chúng để tạo một thể hiện
>>> import time
>>> time.time()
1579718137.550164
7. Ở đây, một ví dụ về cách
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12 hoạt động:

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

>>> import time
>>> time.time()
1579718137.550164
7 trên dòng 3 và sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
37 với
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
17 và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
18 trên dòng 4. Cuối cùng, dòng 5 hiển thị các giá trị của các thuộc tính trong phiên bản
>>> import time
>>> time.time()
1579718137.550164
7 được tạo bởi
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12. Bạn có thể thấy rằng chúng phù hợp với các giá trị được hiển thị trong bảng trê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}")

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 năm tới, Py Pycon US! 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 đã rất phấn khích cho cuộc họp mặt vào năm tới. Đây là một cách tuyệt vời để theo dõi thời gian bạn cần phải chờ đợi và tăng cường các kỹ năng

>>> import time
>>> time.time()
1579718137.550164
7 của bạn cùng một lúc!

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
43 và thêm mã này:delta in the name is a reference to the Greek letter delta, which is used in science and engineering to mean a change. You’ll learn more later about how to use
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 for more general arithmetic operations.

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

>>> import time
>>> time.time()
1579718137.550164
7 từ
>>> import time
>>> time.time()
1579718137.550164
7 và xác định hằng số,
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46, lưu trữ ngày của pycon tiếp theo chúng tôi. Bạn không mong đợi ngày Pycon sẽ thay đổi, vì vậy bạn đặt tên cho biến trong tất cả các mũ để chỉ ra rằng nó là một hằng số.

Countdown to PyCon US 2021: 397 days, 10:35:32.139350

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

# 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}")
2, đó là thời gian hiện tại và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46. Lấy sự khác biệt giữa hai trường hợp
>>> import time
>>> time.time()
1579718137.550164
7 trả về một ví dụ
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
50.

from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 51 Các trường hợp biểu thị sự thay đổi về thời gian giữa hai trường hợp >>> import time >>> time.time() 1579718137.550164 7. Delta trong tên là một tham chiếu đến đồng bằng chữ Hy Lạp, đượ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 sau này về cách sử dụng from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 51 cho các hoạt động số học tổng quát hơn.

Cuối cùng, sản lượng in, tính đến ngày 9 tháng 4 năm 2020 vào lúc 9:30 tối là:

Chỉ 397 ngày cho đến khi Pycon US 2021! Đầu ra này là một chút cồng kềnh, vì vậy sau nà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 đầu ra khác. Nếu bạn chạy kịch bản sau ngày 12 tháng 5 năm 2021 lúc 8:00 sáng, bạn sẽ nhận được một lượng thời gian âm còn lại!

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
0

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
63, khác với tên mà bạn sử dụng để nhập gói, chỉ là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60.

Sử dụng from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 60 để thêm múi giờ vào Python >>> import time >>> time.time() 1579718137.550164 7

Một lý do mà

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 rất hữu ích là nó bao gồm một giao diện cho cơ sở dữ liệu múi giờ IANA. Điều này đưa rắc rối ra khỏi việc gán các múi giờ cho các trường hợp
>>> import time
>>> time.time()
1579718137.550164
7 của bạn. Hãy thử ví dụ này để xem cách đặt phiên bản
>>> import time
>>> time.time()
1579718137.550164
7 để có múi giờ địa phương của bạn:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
1

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 từ
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 và
>>> import time
>>> time.time()
1579718137.550164
7 từ
>>> import time
>>> time.time()
1579718137.550164
7. Sau đó, bạn tạo một thể hiện
>>> import time
>>> time.time()
1579718137.550164
7 được đặt thành thời gian hiện tại bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
75.

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 cho
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
75 và đặt
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 bằng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
79. Trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60,
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
79 trả về một ví dụ cụ thể là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
59. Điều này có nghĩa là nó có thể đại diện cho tất cả các phần bù múi giờ cần thiết và thông tin thời gian tiết kiệm ánh sáng ban ngày mà
>>> import time
>>> time.time()
1579718137.550164
7 cần.

Bạn cũng in tên của múi giờ bằng

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
84, in
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
85. Đây là đầu ra cho Windows, nhưng trên MacOS hoặc Linux, đầu ra của bạn có thể đọc
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
86 nếu bạn ở Múi giờ phía Đông Hoa Kỳ trong mùa đông.

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87 và vượt qua tên IANA chính thức cho múi giờ mà bạn quan tâm. Ở đây, một ví dụ về cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
2

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 từ
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 và
>>> import time
>>> time.time()
1579718137.550164
7 từ
>>> import time
>>> time.time()
1579718137.550164
7. Sau đó, bạn tạo một thể hiện
>>> import time
>>> time.time()
1579718137.550164
7 được đặt thành thời gian hiện tại bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
75.

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 cho
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
75 và đặt
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 bằng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
79. Trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60,
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
79 trả về một ví dụ cụ thể là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
59. Điều này có nghĩa là nó có thể đại diện cho tất cả các phần bù múi giờ cần thiết và thông tin thời gian tiết kiệm ánh sáng ban ngày mà
>>> import time
>>> time.time()
1579718137.550164
7 cần.

Bạn cũng in tên của múi giờ bằng

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
84, in
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
85. Đây là đầu ra cho Windows, nhưng trên MacOS hoặc Linux, đầu ra của bạn có thể đọc
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
86 nếu bạn ở Múi giờ phía Đông Hoa Kỳ trong mùa đông.

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87 và vượt qua tên IANA chính thức cho múi giờ mà bạn quan tâm. Ở đây, một ví dụ về cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
3

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 từ
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 và
>>> import time
>>> time.time()
1579718137.550164
7 từ
>>> import time
>>> time.time()
1579718137.550164
7. Sau đó, bạn tạo một thể hiện
>>> import time
>>> time.time()
1579718137.550164
7 được đặt thành thời gian hiện tại bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
75.

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 cho
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
75 và đặt
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 bằng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
79. Trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60,
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
79 trả về một ví dụ cụ thể là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
59. Điều này có nghĩa là nó có thể đại diện cho tất cả các phần bù múi giờ cần thiết và thông tin thời gian tiết kiệm ánh sáng ban ngày mà
>>> import time
>>> time.time()
1579718137.550164
7 cần.naive vs aware
>>> import time
>>> time.time()
1579718137.550164
7 instances. If you already know all about this, then you can skip ahead to improve your PyCon countdown with time zone information.

Bạn cũng in tên của múi giờ bằng from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 84, in from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 85. Đây là đầu ra cho Windows, nhưng trên MacOS hoặc Linux, đầu ra của bạn có thể đọc from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 86 nếu bạn ở Múi giờ phía Đông Hoa Kỳ trong mùa đông.

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87 và vượt qua tên IANA chính thức cho múi giờ mà bạn quan tâm. Ở đây, một ví dụ về cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87:

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

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
87 để truy xuất thông tin múi giờ cho London, Vương quốc Anh và lưu trữ nó trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
90. Sau đó, bạn lấy lại thời gian hiện tại, đặt múi giờ thành
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
90.

Trên Windows, điều này cung cấp cho thuộc tính

 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7 giá trị
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
93. 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"
7 sẽ trông giống như
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
95, nhưng nó có thể hơi khác nhau tùy thuộc vào nơi
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 lấy dữ liệu múi giờ.aware
>>> import time
>>> time.time()
1579718137.550164
7 instance can compare itself unambiguously to other aware
>>> import time
>>> time.time()
1579718137.550164
7 instances and will always return the correct time interval when used in arithmetic operations.

Bạn cũng sử dụng

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
97 để in tên của múi giờ, hiện là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
98, có nghĩa là thời gian trung bình của Greenwich. Đầu ra này giống nhau trên Windows, MacOS và Linux.
>>> import time
>>> time.time()
1579718137.550164
7 instances, on the other hand, may be ambiguous. One example of this ambiguity relates to daylight saving time. Areas that practice daylight saving time turn the clocks forward one hour in the spring and backward one hour in the fall. This typically happens at 2:00 AM local time. In the spring, the hour from 2:00 AM to 2:59 AM never happens, and in the fall, the hour from 1:00 AM to 1:59 AM happens twice!

Trong một phần trước đó, bạn đã học được rằng bạn không nên sử dụng

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
99 để tạo phiên bản
>>> import time
>>> time.time()
1579718137.550164
7 tại UTC hiện tại. Bây giờ bạn đã biết cách sử dụng
>>> import time
>>> time.time()
1579718137.550164
01 để cung cấp múi giờ cho ví dụ
>>> import time
>>> time.time()
1579718137.550164
7. Ở đây, một ví dụ được sửa đổi từ khuyến nghị trong tài liệu Python:

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

>>> import time
>>> time.time()
1579718137.550164
03 để đặt múi giờ của
# 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}")
2 cho múi giờ UTC. Phương pháp này được khuyến nghị sử dụng
>>> import time
>>> time.time()
1579718137.550164
05 vì
>>> import time
>>> time.time()
1579718137.550164
05 trả về một ví dụ ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, trong khi phương thức được chứng minh ở đây trả về một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 nhận thức.

Cải thiện đế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 ví dụ Python

>>> import time
>>> time.time()
1579718137.550164
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
>>> import time
>>> time.time()
1579718137.550164
7 tiêu chuẩn để vượt qua 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
>>> import time
>>> time.time()
1579718137.550164
20, cung cấp giao diện tự nhiên hơn để tạo các phiên bản
>>> import time
>>> time.time()
1579718137.550164
7:

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
4

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

>>> import time
>>> time.time()
1579718137.550164
22 và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
70 từ
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 và
>>> import time
>>> time.time()
1579718137.550164
7 từ
>>> import time
>>> time.time()
1579718137.550164
7. Tiếp theo, bạn sử dụng
>>> import time
>>> time.time()
1579718137.550164
27 để đọc ngày của PyCon tiếp theo chúng tôi từ một chuỗi. Điều này dễ đọc hơn nhiều so với hàm tạo
>>> import time
>>> time.time()
1579718137.550164
7 đơn giản.

>>> import time
>>> time.time()
1579718137.550164
27 Trả về một ví dụ ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, vì vậy bạn sử dụng
>>> import time
>>> time.time()
1579718137.550164
31 để thay đổi
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
7 thành múi giờ
>>> import time
>>> time.time()
1579718137.550164
33. Pycon US 2021 sẽ diễn ra tại Pittsburgh, Pennsylvania, nằm trong múi giờ phía đông Hoa Kỳ. Tên kinh điển cho múi giờ đó là
>>> import time
>>> time.time()
1579718137.550164
33 vì thành phố New York là thành phố lớn nhất trong múi giờ.

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46 là một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 nhận thức với múi giờ được đặt cho thời gian phương Đông của Hoa Kỳ. Vì ngày 12 tháng 5 là sau khi thời gian tiết kiệm ánh sáng ban ngày có hiệu lực, tên múi giờ là
>>> import time
>>> time.time()
1579718137.550164
37 hoặc
>>> import time
>>> time.time()
1579718137.550164
38.

Tiếp theo, bạn tạo

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 để thể hiện thời gian hiện tại và cung cấp cho nó múi giờ địa phương của bạn. Cuối cùng, bạn tìm thấy
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 giữa
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46 và
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và in kết quả. Nếu bạn ở một địa điểm không điều chỉnh đồng hồ để tiết kiệm ánh sáng ban ngày, thì bạn có thể thấy số giờ còn lại cho đến khi PyCon thay đổi thêm một giờ.

Làm số học với Python >>> import time >>> time.time() 1579718137.550164 7

Python

>>> import time
>>> time.time()
1579718137.550164
7 Các trường hợp 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 trường hợp
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 để biểu diễn các khoảng thời gian.
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 rất hữu ích vì nó được tích hợp vào thư viện tiêu chuẩn Python. Ở đây, một ví dụ về cách làm việc với
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
5

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7, lưu trữ thời gian hiện tại và
>>> import time
>>> time.time()
1579718137.550164
49, đó là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của
>>> import time
>>> time.time()
1579718137.550164
51 ngày. Tiếp theo, bạn thêm
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và
>>> import time
>>> time.time()
1579718137.550164
49 để tạo ra một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 một ngày trong tương lai. Lưu ý rằng làm việc với các trường hợp ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, như bạn đang ở đây, có nghĩa là thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1 của số tăng
>>> import time
>>> time.time()
1579718137.550164
7 bởi một và không tính đến bất kỳ khoảng thời gian lặp đi lặp lại hoặc bỏ qua.

Các phiên bản

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 cũng hỗ trợ các giá trị âm làm đầu vào cho các đối số:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
6

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7, lưu trữ thời gian hiện tại và
>>> import time
>>> time.time()
1579718137.550164
49, đó là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của
>>> import time
>>> time.time()
1579718137.550164
51 ngày. Tiếp theo, bạn thêm
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và
>>> import time
>>> time.time()
1579718137.550164
49 để tạo ra một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 một ngày trong tương lai. Lưu ý rằng làm việc với các trường hợp ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, như bạn đang ở đây, có nghĩa là thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1 của số tăng
>>> import time
>>> time.time()
1579718137.550164
7 bởi một và không tính đến bất kỳ khoảng thời gian lặp đi lặp lại hoặc bỏ qua.

Các phiên bản

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 cũng hỗ trợ các giá trị âm làm đầu vào cho các đối số:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
7

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7, lưu trữ thời gian hiện tại và
>>> import time
>>> time.time()
1579718137.550164
49, đó là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của
>>> import time
>>> time.time()
1579718137.550164
51 ngày. Tiếp theo, bạn thêm
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và
>>> import time
>>> time.time()
1579718137.550164
49 để tạo ra một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 một ngày trong tương lai. Lưu ý rằng làm việc với các trường hợp ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, như bạn đang ở đây, có nghĩa là thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1 của số tăng
>>> import time
>>> time.time()
1579718137.550164
7 bởi một và không tính đến bất kỳ khoảng thời gian lặp đi lặp lại hoặc bỏ qua.
>>> import time
>>> time.time()
1579718137.550164
68
.

Các phiên bản

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 cũng hỗ trợ các giá trị âm làm đầu vào cho các đối số:

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
8

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7, lưu trữ thời gian hiện tại và
>>> import time
>>> time.time()
1579718137.550164
49, đó là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của
>>> import time
>>> time.time()
1579718137.550164
51 ngày. Tiếp theo, bạn thêm
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và
>>> import time
>>> time.time()
1579718137.550164
49 để tạo ra một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 một ngày trong tương lai. Lưu ý rằng làm việc với các trường hợp ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, như bạn đang ở đây, có nghĩa là thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1 của số tăng
>>> import time
>>> time.time()
1579718137.550164
7 bởi một và không tính đến bất kỳ khoảng thời gian lặp đi lặp lại hoặc bỏ qua.

>>>

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
9

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7, lưu trữ thời gian hiện tại và
>>> import time
>>> time.time()
1579718137.550164
49, đó là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của
>>> import time
>>> time.time()
1579718137.550164
51 ngày. Tiếp theo, bạn thêm
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và
>>> import time
>>> time.time()
1579718137.550164
49 để tạo ra một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 một ngày trong tương lai. Lưu ý rằng làm việc với các trường hợp ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, như bạn đang ở đây, có nghĩa là thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1 của số tăng
>>> import time
>>> time.time()
1579718137.550164
7 bởi một và không tính đến bất kỳ khoảng thời gian lặp đi lặp lại hoặc bỏ qua.

Các phiên bản

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 cũng hỗ trợ các giá trị âm làm đầu vào cho các đối số:

>>>

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

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7, lưu trữ thời gian hiện tại và
>>> import time
>>> time.time()
1579718137.550164
49, đó là
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của
>>> import time
>>> time.time()
1579718137.550164
51 ngày. Tiếp theo, bạn thêm
Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 và
>>> import time
>>> time.time()
1579718137.550164
49 để tạo ra một ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 một ngày trong tương lai. Lưu ý rằng làm việc với các trường hợp ngây thơ
>>> import time
>>> time.time()
1579718137.550164
7, như bạn đang ở đây, có nghĩa là thuộc tính
 1>>> date_string = "01-31-2020 14:45:37"
 2>>> format_string = "%m-%d-%Y %H:%M:%S"
1 của số tăng
>>> import time
>>> time.time()
1579718137.550164
7 bởi một và không tính đến bất kỳ khoảng thời gian lặp đi lặp lại hoặc bỏ qua.

>>> import time
>>> time.time()
1579718137.550164
96 Đối tượng 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 sau, trong đó tháng 10 ngày 13 rơi vào thứ Sáu hoặc ngày nào sẽ diễn ra 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 ví dụ
>>> import time
>>> time.time()
1579718137.550164
7 và tạo, ví dụ,
>>> import time
>>> time.time()
1579718137.550164
7 một tuần trong tương lai lúc 10:00 sáng. Bạn có thể đọc tất cả về các cách sử dụng khác trong tài liệu
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60.

Hoàn thành việc đếm ngược pycon của bạn

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

>>> import time
>>> time.time()
1579718137.550164
68 để tính thời gian còn lại cho đến khi PYCON, phát triển chức năng để in thời gian còn lại ở định dạng đẹp và hiển thị ngày PYCON cho người dùng.

Sử dụng >>> import time >>> time.time() 1579718137.550164 68 trong PyCon Countdown của bạn

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

>>> import time
>>> time.time()
1579718137.550164
68. Với toán tử trừ, đối tượng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
51 của bạn không thể đếm khoảng thời gian lớn hơn một ngày. Tuy nhiên,
>>> import time
>>> time.time()
1579718137.550164
68 cho phép bạn hiển thị các năm, tháng và ngày còn lại:

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

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
>>> 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)
05. Đầu ra từ tập lệnh này sẽ cho bạn biết rằng Pycon US 2021 sẽ xảy ra trong 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.line 11 with
>>> 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)
05. The output from this script should tell you that PyCon US 2021 will happen in about one year and one month, depending on when you run the script.

Tuy nhiên, đầu ra đó rất đẹp vì nó trông giống như chữ ký 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)
06. 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:line 11 in the previous code with the code below:

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

Mã này yêu cầu Python 3.8 vì nó sử dụng toán tử Walrus 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

>>> 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)
07 truyền thống thay cho dòng 17.walrus operator. You can make this script work on older versions of Python by using a traditional
>>> 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)
07 loop in place of line 17.

Trong mã này, bạn xác đị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)
08, có hai đối số, đơn vị thời gian và thể hiện
>>> import time
>>> time.time()
1579718137.550164
68 mà các đơn vị thời gian nên được truy xuất. Nếu lượng thời gian không bằng 0, thì
>>> 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)
08 sẽ trả về một chuỗi với lượng thời gian và đơn vị thời gian. Nếu không, nó trả về một chuỗi trống.

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)
08 trong phạm vi hiểu trên dòng 17. Dòng đó tạo ra 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
>>> 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)
08. Nó sử dụng toán tử Walrus để gán giá trị trả 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)
08 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)
14 và chỉ bao gồ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)
14 nếu đó 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)
16.line 17. That line creates a generator storing the non-empty strings returned from
>>> 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)
08. It uses the walrus operator to assign the return value of
>>> 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)
08 to
>>> 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 and includes
>>> 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 only if it is
>>> 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)
16.

Cuối cùng, dòng 18 in đầu ra cuối cùng 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)
17 trên trình tạo. Tiếp theo, bạn sẽ xem xét bao gồm cả ngày pycon trong đầu ra từ tập lệnh của bạn.line 18 prints the final output using
>>> 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 on the generator. Next, you’ll take a look at including the PyCon date in the output from your script.

Hiển thị ngày pycon trong PyCon Countdown của bạn

Trước đó, bạn đã tìm hiểu về việc tạo các trường hợp

>>> import time
>>> time.time()
1579718137.550164
7 bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12. Phương pháp này sử dụng ngôn ngữ nhỏ đặc biệt trong Python để chỉ định cách thức chuỗi ngày được định dạng.

Python

>>> import time
>>> time.time()
1579718137.550164
7 có một phương thức bổ sung 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)
21 cho phép bạn định dạng một thể hiện
>>> import time
>>> time.time()
1579718137.550164
7 cho một chuỗi. Theo một nghĩa nào đó, nó có hoạt động ngược của phân tích cú pháp bằng cách sử dụng
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12. Bạn có thể phân biệt giữa hai phương pháp bằng cách nhớ rằ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)
24 trong
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
12 là viết tắt của Parse 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)
26 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)
21 là viết tắt của định dạng.parse, and the
>>> 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)
26 in
>>> 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 stands for format.

Trong PyCon Countdown, bạn 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)
21 để in đầu ra để cho người dùng biết ngày mà 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.org. Bây giờ thêm mã này vào dòng 18 của tập lệnh đếm ngược PyCon của bạn:line 18 of your PyCon countdown script:

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

Trong mã này, dòng 18 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 để tạo một chuỗi đại diện cho ngày bắt đầu của PYCON US 2021. Đầu ra bao gồm các ngày trong tuần, tháng, ngày, năm, giờ, phút, AM hoặc múi giờ và múi giờ:line 18 uses
>>> 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 to create a string representing the starting date of PyCon US 2021. The output includes the weekday, month, day, year, hour, minute, AM or PM, and time zone:

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

Trên dòng 19, bạn in chuỗi này cho người dùng xem với 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 kịch bản của mình để giúp người khác dễ dàng sử dụng lại.line 19, you print this string for the user to see with some explanatory text. The last line prints the amount of time remaining until the PyCon start date. Next, you’ll finish your script to make it easier for other people to reuse.

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

Bước cuối cùng mà bạn sẽ muốn thực hiện là tuân theo các thực tiễn tốt nhất của Python và đặt mã tạo ra đầu ra vào chức 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)
30. Bạn có thể kiểm tra mã đầy đủ, mã cuối cùng sau khi áp dụng tất cả các thay đổi sau:

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

Trong mã này, bạn di chuyể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)
31 và mã được sử dụng cho trình tạo 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)
30. Trên dòng 23, bạn sử dụng mệnh đề Guard để đảm bảo rằ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)
30 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 người khác nhập mã của bạn và sử dụng lại
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46, ví dụ, nếu họ thích.line 23, you use the guard clause to make sure that
>>> 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)
30 only runs when this file is executed as a script. This allows other people to import your code and reuse
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46, for instance, if they’d like.

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

Countdown to PyCon US 2021: 397 days, 10:35:32.139350
7 bằng cách truyền đối số dòng lệnh. Bạn cũng có thể thay đổi
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
46 thành một cái gì đó gần nhà hơn, nói Pycon Africa hoặc Europython.

Để thậm chí còn hào hứng hơn với PyCon, hãy xem Python thực sự tại Pycon US 2019 và làm thế nào để tận dụng tối đa Pycon!

Giải pháp thay thế cho Python >>> import time >>> time.time() 1579718137.550164 7 và from dateutil import tz from datetime import datetime NEW_YORK = tz.gettz('America/New_York') dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK) dt_naive = dt.replace(tzinfo=None) # datetime(2008, 1, 1, 16) 60

Python

>>> import time
>>> time.time()
1579718137.550164
7 và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 là sự kết hợp mạnh mẽ của các thư viện khi bạn làm việc với ngày và thời gian.
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 thậm chí còn được khuyến nghị 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ờ ở Python. Một số trong số này dựa vào
>>> import time
>>> time.time()
1579718137.550164
7 và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60, trong khi những người khác là thay thế hoàn toàn độc lập:

  • PYTZ cung cấp thông tin múi giờ tương tự như
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    60. Nó sử dụng một giao diện hơi khác so với tiêu chuẩn
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    59, vì vậy hãy lưu ý đến các vấn đề tiềm ẩn nếu bạn quyết định sử dụng nó.
    provides time zone information similar to
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    60. It uses a somewhat different interface than the standard
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    59, so be aware of the potential problems if you decide to use it.
  • Mũi tên cung cấp một sự thay thế thả vào cho
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7. Nó lấy cảm hứng 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)
    
    47, vì vậy nếu bạn đến từ phát triển web, thì đây có thể là một giao diện quen thuộc hơn.
    provides a drop-in replacement for
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7. It’s inspired by
    >>> 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)
    
    47, so if you’re coming from web development, then this might be a more familiar interface.
  • Pendulum cung cấp một sự thay thế thả vào khác cho
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7. Nó bao gồm giao diện múi giờ và triển khai
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    51 được cải tiến.
    provides another drop-in replacement for
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7. It includes a time zone interface and an improved
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    51 implementation.
  • Maya cung cấp một giao diện tương tự như
    >>> import time
    >>> time.time()
    1579718137.550164
    
    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.
    provides a similar interface as
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7. It relies on Pendulum for parts of the parsing library.
  • DateParser cung cấp một giao diện để tạo các trường hợp ____27 từ văn bản có thể đọc được của con người. Nó linh hoạt và hỗ trợ nhiều ngôn ngữ. provides an interface to generate
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 instances from human-readable text. It’s flexible and supports many languages.

Ngoài ra, nếu bạn làm việc rất nhiều với các gói khoa học dữ liệu, hoặc các gói khoa học dữ liệu khác, thì có một vài 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
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 tích hợp, nhưng phiên bản Numpy có thể được sử dụng trong các mảng.
    provides a similar API to the built-in Python
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 library, but the NumPy version can be used in arrays.
  • Pandas cung cấp hỗ trợ cho dữ liệu chuỗi thời gian trong các khung dữ liệu, 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
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 numpy.
    provides support for time-series data in DataFrames, usually sequential values of time-based events, by using the NumPy
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 module.
  • CFTime cung cấp hỗ trợ cho các lịch khác ngoài lịch Gregorian Progorian cũng như các đơn vị thời gian khác phù hợp với 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
    >>> 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)
    
    54 để cung cấp hỗ trợ chuỗi thời gian.
    provides support for calendars other than the proleptic Gregorian calendar as well as other time units conforming to the Climate and Forecasting (CF) conventions. It’s used by the
    >>> 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)
    
    54 package to provide time-series support.

Đọc thêm

Vì lập trình theo thời gian có thể rất phức tạp, có 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 trong 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ụ để giúp đỡ với bất kỳ vấn đề nào bạn có thể có. Tại đây, một danh sách các bài viết và video được chọn 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à múi giờ thực hành tốt nhất
  • Lưu trữ UTC không phải là một viên đạn bạc
  • Cách lưu Datetimes cho các sự kiện trong tương lai
  • Mã hóa các thực tiễn tốt nhất bằng cách sử dụng DateTime trong .NET Framework
  • Máy tính: Vấn đề với Time & Timezones
  • 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 bảo trì hiện tại của

from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60. Các bài viết 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 bạn không cần biết (Pycon 2019)
  • PYTZ: Footgun 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 DateTime không chuyển đổi

Sự kết luận

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

>>> import time
>>> time.time()
1579718137.550164
7 và
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60 cũng như cách làm việc với các múi giờ trong mã của bạn.
>>> import time
>>> time.time()
1579718137.550164
7
and
from dateutil import tz
from datetime import datetime
NEW_YORK = tz.gettz('America/New_York')
dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
60
modules as well as how to work with time zones in your code.

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

  • Cửa hàng ngày ở định dạng tốt, chống trong tương lai trong các chương trình của bạn dates in a good, future-proof format in your programs
  • Tạo các phiên bản Python
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 với các chuỗi được định dạng
    Python
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 instances with formatted strings
  • Thêm thông tin múi giờ vào các phiên bản
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 với
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    60
    time zone information to
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 instances with
    from dateutil import tz
    from datetime import datetime
    NEW_YORK = tz.gettz('America/New_York')
    dt = datetime(2008, 1, 1, 16, 0, tzinfo=NEW_YORK)
    dt_naive = dt.replace(tzinfo=None)   # datetime(2008, 1, 1, 16)
    
    60
  • Thực hiện các hoạt động số học với các trường hợp
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 bằng cách sử dụng
    >>> import time
    >>> time.time()
    1579718137.550164
    
    68
    arithmetic operations with
    >>> import time
    >>> time.time()
    1579718137.550164
    
    7 instances using
    >>> import time
    >>> time.time()
    1579718137.550164
    
    68

Cuối cùng, bạn đã tạo ra một kịch bản đếm ngược thời gian còn lại cho đến khi Pycon tiếp theo chúng tôi để bạn có thể hào hứng cho cuộc tụ tập Python lớn nhất xung quanh. Ngày và thời gian có thể khó khăn, 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!

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng mô -đun DateTime của Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using Python's datetime Module

Làm thế nào để bạn lưu trữ giá trị thời gian trong Python?

%m cho số lượng không có viền của tháng (01, 02, Hồi, 12). Ngoài ra còn có %-M để tránh sử dụng số 0 hàng đầu (1, 2,,, 12) %y trong năm (1999, 2021, Hồi) %h cho giờ trong ngày (24 giờ) không được đệm ( 00, 01, xông, 23) hoặc %-H để loại bỏ số 0 hàng đầu (0, 1, Hồi, 23) (01, 02, …, 12). There is also %-m to avoid using the leading zero (1, 2, …, 12) %Y for the year (1999, 2021, …) %H for the hour of the day (24-hour) zero-padded (00, 01, …, 23) or %-H for removing the leading zero (0, 1,…, 23)

Làm thế nào để bạn hiển thị thời gian trong Python?

Để có cả hàm DateTime ngày và giờ hiện tại.Hàm này trả về ngày và giờ địa phương hiện tại.datetime. now() function of DateTime module is used. This function returns the current local date and time.

Có kiểu dữ liệu thời gian trong Python không?

Trong Python, ngày và thời gian không phải là một loại dữ liệu của riêng họ, nhưng một mô -đun có tên DateTime có thể được nhập để hoạt động với ngày cũng như thời gian.Mô -đun DateTime Python được tích hợp vào Python, do đó không cần phải cài đặt bên ngoài.Mô -đun Datetime Python cung cấp cho các lớp để làm việc theo ngày và giờ.date and time are not a data type of their own, but a module named datetime can be imported to work with the date as well as time. Python Datetime module comes built into Python, so there is no need to install it externally. Python Datetime module supplies classes to work with date and time.

Làm thế nào để bạn đặt thời gian trong Python?

Làm thế nào để có được ngày và giờ hiện tại trong Python..
Dòng lệnh / cửa sổ thiết bị đầu cuối truy cập.....
Tùy chọn để hình thành DateTime.....
Sử dụng strftime () để hiển thị thời gian và ngày.....
Lưu và đóng tập tin.....
Để hiển thị thời gian ở định dạng 12 giờ, chỉnh sửa tệp thành: nhập thời gian in (thời gian.strftime ("%i:%m:%s")).