Hướng dẫn how does python handle different time zones? - python xử lý các múi giờ khác nhau như thế nào?

Trong hướng dẫn này, chúng tôi sẽ học cách làm việc với timezone trong Python.

Sau khi đọc bài viết này, bạn sẽ học::

  • Xử lý thời gian bằng cách tạo ra một ngày và giờ nhận biết múi giờ.
  • Làm thế nào để có được thời gian hiện tại trong một múi giờ khác
  • Nhận tên múi giờ hiện tại, bù UTC và Offset DST nếu DST có hiệu lực
  • Cách chuyển đổi DateTime UTC thành một múi giờ cụ thể
  • Chuyển đổi thời gian từ múi giờ này sang thời gian khác
  • Các hoạt động toán học trên hai đối tượng ngây thơ và thời gian ngây thơ
  • Tìm hiểu các mô -đun triển khai TZINFO là PYTZ, ZoneInfo và phương pháp của chúng.tzinfo implementation modules namely pytz, ZoneInfo, and their methods.

Thời gian trong Python là gì?

Một múi giờ đại diện cho thời gian chuẩn hóa tùy thuộc vào phần nào của thế giới đang được xem xét.

Nói một cách đơn giản, timezone đề cập đến thời gian địa phương của một khu vực. UTC (thời gian phối hợp phổ quát) là thời gian thiên văn dựa trên vòng quay Trái đất, là tiêu chuẩn theo thời gian dựa trên khu vực thế giới được phối hợp.

Lưu ý: UTC - Thời gian phối hợp là tiêu chuẩn thời gian phổ biến trên toàn thế giới. Vì vậy, trong Python, để làm việc với múi giờ mà không có bất kỳ vấn đề nào, nên sử dụng UTC làm thời gian cơ bản của bạn: UTC – Coordinated Universal Time is the common time standard across the world. So, in Python, to work with the timezone without any issues, it is recommended to use the UTC as your base timezone

Ví dụ, CT (giờ trung tâm) ở Bắc và Nam Mỹ đứng sau 5 hoặc 6 giờ và được đại diện là UTC-5 hoặc UTC-6 dựa trên tiết kiệm ánh sáng ban ngày. Dưới đây là một vài ví dụ.

UTC bùĐịa điểmTênĐịa điểm
UTC +9Nhật Bản, Hàn Quốc và 5 người nữaJSTTokyo
UTC +5: 30Ấn ĐộIstẤn Độ
IstUTC +1Vương quốc Anh và 20 người nữaBST
LondonUTC -10Hawaii/usa và 2 cái nữaHST
Honolulu

Múi giờ

Python cung cấp lớp cơ sở trừu tượng

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
7 cung cấp các phương pháp để xử lý timezone. Nhưng lớp này là một lớp cơ sở trừu tượng và không nên được khởi tạo trực tiếp. Chúng ta cần xác định một lớp con của TZINFO để nắm bắt thông tin về một múi giờ cụ thể.pytz library has implemented a timezone class for handling arbitrary fixed offsets from UTC and timezones. This library allows accurate and cross-platform timezone calculations and also solves the issue of ambiguous times at the end of daylight saving time.

Thư viện PYTZ đã triển khai một lớp timezone để xử lý các khoản bù cố định tùy ý từ UTC và múi giờ. Thư viện này cho phép tính toán múi giờ chính xác và đa nền tảng và cũng giải quyết vấn đề thời gian mơ hồ vào cuối thời gian tiết kiệm ánh sáng ban ngày.concrete implementation of the abstract base class tzinfo and is used to create timezone-aware datetime objects.

PYTZ là một triển khai cụ thể của lớp cơ sở trừu tượng TZINFO và được sử dụng để tạo các đối tượng DateTime nhận biết thời gian.

Ví dụ: chức năng

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
8 trả về thời gian ngày địa phương hiện tại mà không có bất kỳ thông tin timezone nào. Sử dụng thư viện PYTZ, chúng ta có thể chuyển tên múi giờ cho chức năng này để có được dữ liệu hiện tại trong múi giờ đã cho.following attributes and methods of the pytz module to work with timezone in Python.

  • Chúng tôi sẽ sử dụng các thuộc tính và phương thức sau của mô -đun PYTZ để hoạt động với timezone trong Python.
  • Timezone naive: 2021-07-09 13:22:02.256978
    Timezone Aware: 2021-07-09 07:52:02.256978+00:00
    US Central DateTime 2021-07-09 02:52:02.313026-05:00
    9: Nhận Timezone tiêu chuẩn UTC Timezone
  • from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    0: Tạo đối tượng múi giờ của một khu vực cụ thể

from datetime import datetime import pytz unaware = datetime(2021, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)1: Chuyển đổi thời gian của múi giờ cụ thể thành múi giờ khác

Tạo đối tượng DateTime Agnes Aware DateTime

Trong Python, một đối tượng ngày có thể được đề cập có hoặc không có múi giờ. Dựa trên đó, một đối tượng được gọi là ngây thơ hoặc nhận thức. Một đối tượng ngày, theo mặc định, là ngây thơ. Một đối tượng DateTime hoặc thời gian được biết nếu nó giữ giá trị múi giờ (TZ).

  • Thực hiện theo các bước dưới đây để tạo đối tượng DateTime Agnes Agree trong Python: - module if not installed using the
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    2 command.
  • Cài đặt mô -đun PYTZ nếu không được cài đặt bằng lệnh
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    2.
  • Sử dụng chức năng
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    3 để tạo đối tượng múi giờ

Hướng dẫn how does python handle different time zones? - python xử lý các múi giờ khác nhau như thế nào?

Example::

from datetime import datetime
import pytz

# current Datetime
unaware = datetime.now()
print('Timezone naive:', unaware)

# Standard UTC timezone aware Datetime
aware = datetime.now(pytz.utc)
print('Timezone Aware:', aware)

# US/Central timezone datetime
aware_us_central = datetime.now(pytz.timezone('US/Central'))
print('US Central DateTime', aware_us_central)

Output::

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
  • Sử dụng chức năng
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    4 hoặc
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    5 để tạo thời gian hiện tại của timezone.+00:00 which is the standrad UTC offset.
  • Để có được thời gian UTC, chúng tôi đã sử dụng
    Timezone naive: 2021-07-09 13:22:02.256978
    Timezone Aware: 2021-07-09 07:52:02.256978+00:00
    US Central DateTime 2021-07-09 02:52:02.313026-05:00
    9 làm tham số cho hàm
    Timezone naive: 2021-07-09 13:22:02.256978
    Timezone Aware: 2021-07-09 07:52:02.256978+00:00
    US Central DateTime 2021-07-09 02:52:02.313026-05:00
    8. Phần bù ở cuối là +00: 00 là phần bù UTC đứng.-05:00 is the UTC offset of the CDT region

Để có được DateTime CDT, chúng tôi đã sử dụng khu vực ‘US/Central, để tạo ra một múi giờ. Phần bù ở cuối là -05: 00 là phần bù UTC của vùng CDT

Tham khảo danh sách tất cả các múi giờ trong Python nếu bạn không biết tên chính xác của múi giờ để tạo ngày và thời gian trong đúng múi giờ., use the following code.

from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)

Để làm cho timezone DateTime cũ/hiện tại nhận thức được, hãy sử dụng mã sau.: The

from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)
8 method return the new
from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)
9 instance.

Lưu ý: Phương thức

from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)
8 Trả về phiên bản
from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)
9 mới.

Định dạng UTC DateTime để lấy tên múi giờ

from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530

Trích xuất tên múi giờ từ DateTime UTC bằng định dạng DateTime trong Python. Sử dụng Chỉ thị

from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
0 để lấy tên múi giờ.: IST is the timezone name

Lưu ý: IST là tên múi giờ

Tạo đối tượng DateTime Agnes Agree Agree bằng lớp Timezone

Hãy cùng xem cách tạo ra một đối tượng

from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)
9 Agree ____29 mà không có pytz.

Các mô -đun DateTime có lớp

from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
2, từ đó là lớp con của lớp cơ sở trừu tượng
from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
3. Mỗi trường hợp được tạo ra của lớp timezone đại diện cho độ lệch của múi giờ từ Thời gian phổ biến (UTC) phối hợp.

Syntax::

datetime.timezone(offset, name=None)

Chúng ta có thể tạo đối tượng UTC-Aware

from datetime import datetime
import pytz

unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)

# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)
9 bằng cách gán
from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
5

Example::

from datetime import datetime, timezone, timedelta

# naive
naive = datetime.now()
print("Naive DateTime:", naive)

# UTC aware
UTC = datetime.now(timezone.utc)
print("UTC DateTime", UTC)

# Creating a datetime with JST (Japan) TimeZone
jst_dateTime = datetime.now(timezone(timedelta(hours=+9), 'JST'))
print("In JST::", jst_dateTime)

Lưu ý: Chúng tôi đang đặt phần bù UTC bằng lớp Timedelta

from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
7: we are setting the UTC offset using the timedelta class
from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
7

Nhận thời gian hiện tại trong các múi giờ khác nhau

Sử dụng mô -đun PYTZ, chúng tôi có thể nhận được ngày và thời gian hiện tại của bất kỳ timezone nào.

Syntax::

datetime.now(pytz.timezone('timezone name'))

Steps::

  • Sử dụng chức năng
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    3 để tạo đối tượng múi giờ
  • Sử dụng hàm
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    4 để có được dữ liệu hiện tại của múi giờ đã cho.

Lưu ý: UTC - Thời gian phối hợp là tiêu chuẩn thời gian phổ biến trên toàn thế giới. Vì vậy, để làm việc với múi giờ mà không có bất kỳ vấn đề nào, bạn nên sử dụng UTC làm thời gian cơ bản của bạn.: UTC – Coordinated Universal Time is the common time standard across the world. So, to work with the timezone without any issues, it is recommended to use the UTC as your base timezone.

Trong ví dụ này, chúng tôi sẽ thấy cách lấy dữ liệu hiện tại trong thời gian sau đây

Hoa Kỳ: Nhận ngày và giờ hiện tại trong thời gian sau của Hoa Kỳ: Get current Date and Time in the following TimeZones of United States

from datetime import datetime
import pytz

dt_us_central = datetime.now(pytz.timezone('America/Mexico_City'))
print("US Central DateTime:", dt_us_central.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_us_pacific = datetime.now(pytz.timezone('America/Tijuana'))
print("US Pacific timezone DateTime:", dt_us_pacific.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_us_eastern = datetime.now(pytz.timezone('America/New_York'))
print("US Eastern timezone DateTime:", dt_us_eastern.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_us_mountain = datetime.now(pytz.timezone('America/Chihuahua'))
print("US Mountain timezone DateTime:", dt_us_mountain.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

Output::

US Central DateTime: 2021:07:08 08:37:34 CDT -0500
US Pacific timezone DateTime: 2021:07:08 06:37:34 PDT -0700
US Eastern timezone DateTime: 2021:07:08 09:37:34 EDT -0400
US Mountain timezone DateTime: 2021:07:08 07:37:34 MDT -0600

Thời gian khác

from datetime import datetime
import pytz

dt_japan = datetime.now(pytz.timezone('Asia/Tokyo'))
print("Japan DateTime:", dt_japan.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_brazil = datetime.now(pytz.timezone('America/Sao_Paulo'))
print("Brazil DateTime:", dt_brazil.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_uk = datetime.now(pytz.timezone('Europe/London'))
print("Uk DateTime:", dt_uk.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_germany = datetime.now(pytz.timezone('Europe/Berlin'))
print("Germany DateTime:", dt_germany.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_aus = datetime.now(pytz.timezone('Australia/Canberra'))
print("Australia Oceanic DateTime:", dt_aus.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

dt_africa = datetime.now(pytz.timezone('Africa/Maputo'))
print("Central Africa: DateTime:", dt_africa.strftime("%Y:%m:%d %H:%M:%S %Z %z"))

Output::

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
0

Ngoài ra, xem: Chuyển đổi giữa thời gian: Convert between timezones

Nhận thông tin về thời gian bằng TZINFO

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
7 là một lớp cơ sở trừu tượng chứa thông tin về ngày hoặc đối tượng thời gian được truyền cho họ.

TZINFO thường chứa các thông tin sau: -

  • Tên múi giờ của DateTimetime zone name of a Datetime
  • Offset từ UTC (thời gian phối hợp phổ quát) (Coordinated Universal Time)
  • DST (tiết kiệm ánh sáng ban ngày).DST(Daylight saving).

Lớp TZINFO cung cấp phương pháp sau để có được thông tin múi giờ: -

  • datetime.timezone(offset, name=None)
    1: Trả về tên múi giờ tương ứng với & nbsp; ________ 29 & nbsp; object & nbsp; ________ 43. Phương thức này trả về tên được sử dụng trong khi tạo đối tượng múi giờtime zone name corresponding to the 
    from datetime import datetime
    import pytz
    
    unaware = datetime(2021, 6, 15, 8, 45, 17, 5)
    print('Timezone naive:', unaware)
    
    # Convert unaware Datetime to UTC timezone aware Datetime
    aware = unaware.replace(tzinfo=pytz.UTC)
    print(aware)
    9 object 
    datetime.timezone(offset, name=None)
    3. This method returns the name that is used while creating the timezone object
  • datetime.timezone(offset, name=None)
    4: Phương thức này trả về tổng số bù từ UTC phải là đối tượng Timedelta. Các giá trị của Timedelta là dương nếu nó ở phía đông UTC và tiêu cực đối với phía tây UTC. Tổng số bù bao gồm cả giá trị múi giờ và DST (tiết kiệm ánh sáng ban ngày). Phạm vi của Timedelta là từ giữa -Timedelta (giờ = 24) đến Timedelta (giờ = 24)offset from the UTC which should be a timedelta object. The values of the timedelta is positive if it is east of UTC and negative for the west of UTC. The total offset includes both timezone and the DST(Day light savings) values. The range of the timedelta is therfore between -timedelta(hours=24) to timedelta(hours=24)
  • datetime.timezone(offset, name=None)
    5: Phương thức này trả về độ lệch DST trong các khu vực nơi DST có hiệu lực. Trong các trường hợp khác, nó sẽ chỉ trả lại
    datetime.timezone(offset, name=None)
    6. Thông tin DST đã là một phần của UTCOFFSET, do đó, T
    datetime.timezone(offset, name=None)
    7 sẽ trả về phần bù tiêu chuẩn của múi giờ không phân biệt ngày và thời gian mà chỉ ở vị trí địa lý.dst offset in the zones where dst is in effect. In other cases it will return only
    datetime.timezone(offset, name=None)
    6. The dst information is already part of the the utcoffset therefore the t
    datetime.timezone(offset, name=None)
    7 should return the standard offset of the timezone irrespective of the date and time but only on the geographic location.

Example::

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
1

Mã của chúng tôi đã tạo ra các thông tin sau:

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
2

Các mô -đun DateTime & NBSP;

Chuyển đổi giữa thời gian

Sử dụng phương thức

from datetime import datetime, timezone, timedelta

# naive
naive = datetime.now()
print("Naive DateTime:", naive)

# UTC aware
UTC = datetime.now(timezone.utc)
print("UTC DateTime", UTC)

# Creating a datetime with JST (Japan) TimeZone
jst_dateTime = datetime.now(timezone(timedelta(hours=+9), 'JST'))
print("In JST::", jst_dateTime)

0 để chuyển đổi DateTime từ thời gian này sang phương thức khác. Phương thức này sử dụng một thể hiện của đối tượng DateTime và trả về một datetime mới của một múi giờ nhất định.

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
3

Output::

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
4

Lưu ý: Để làm việc với múi giờ mà không có bất kỳ vấn đề nào, nên sử dụng UTC làm múi giờ cơ sở của bạn không phải là thời gian địa phương.: To work with the timezone without any issues, it is recommended to use the UTC as your base timezone not a local time.

Như đã đề cập, chúng ta có thể chuyển đổi một DateTime ngây thơ thành một thể hiện DateTime Aware với giá trị múi giờ được đặt thành giá trị tiêu chuẩn hóa cục bộ.

Chúng ta có thể làm điều đó với một trong các phương thức

from datetime import datetime, timezone, timedelta

# naive
naive = datetime.now()
print("Naive DateTime:", naive)

# UTC aware
UTC = datetime.now(timezone.utc)
print("UTC DateTime", UTC)

# Creating a datetime with JST (Japan) TimeZone
jst_dateTime = datetime.now(timezone(timedelta(hours=+9), 'JST'))
print("In JST::", jst_dateTime)

1 được gọi là ________ 52 (). Phương pháp này được sử dụng để chuyển đổi một ngây thơ sang thời gian địa phương. Nó chấp nhận hai đối số, cụ thể là đối tượng DateTime để bản địa hóa và cờ
from datetime import datetime, timezone, timedelta

# naive
naive = datetime.now()
print("Naive DateTime:", naive)

# UTC aware
UTC = datetime.now(timezone.utc)
print("UTC DateTime", UTC)

# Creating a datetime with JST (Japan) TimeZone
jst_dateTime = datetime.now(timezone(timedelta(hours=+9), 'JST'))
print("In JST::", jst_dateTime)

3 tùy chọn.

Cờ này được đặt thành True nếu chúng ta muốn bản địa hóa và thông tin tiết kiệm ánh sáng ban ngày và sai nếu chúng ta chỉ muốn thời gian bù tiêu chuẩn và sai.

Như đã đề cập ở trên

from datetime import datetime
import pytz

datetime_india = datetime.now(pytz.timezone('Asia/Kolkata'))
print("Formatted DateTime in IST : ", datetime_india.strftime('%Y:%m:%d %H:%M:%S %Z %z'))
# Output 2021:07:08 17:53:23 IST +0530
3 có một phương thức gọi là
from datetime import datetime, timezone, timedelta

# naive
naive = datetime.now()
print("Naive DateTime:", naive)

# UTC aware
UTC = datetime.now(timezone.utc)
print("UTC DateTime", UTC)

# Creating a datetime with JST (Japan) TimeZone
jst_dateTime = datetime.now(timezone(timedelta(hours=+9), 'JST'))
print("In JST::", jst_dateTime)

5 sẽ trả về thông tin về thời gian tiết kiệm ánh sáng ban ngày (DST) nếu cờ được đặt thành true.

Hãy cho chúng tôi xem một ví dụ để chỉ ra cách chúng tôi có thể đặt múi giờ địa phương và lấy thông tin DST.

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
5

Đầu ra

Timezone naive: 2021-07-09 13:22:02.256978
Timezone Aware: 2021-07-09 07:52:02.256978+00:00
US Central DateTime 2021-07-09 02:52:02.313026-05:00
6

Làm thế nào để Python xử lý múi giờ?

Ví dụ 1:..
Từ DateTime Nhập DateTime ..
Nhập pytz ..
# timezone: thời gian trung tâm của chúng tôi ..
DT_EUR_LONDON = DateTime. Bây giờ (pytz. Timezone ('Châu Âu/London')).
in ("Châu Âu London DateTime:", DT_EUR_LONDON. strftime ("%y:%m:%d%h:%m:%s%z%z")).
# Nhận tên múi giờ hiện tại ..
in (dt_eur_london. tzname ()).
# Nhận UTC Offset ..

Làm thế nào để bạn có được các múi giờ khác nhau trong Python?

Chúng tôi sẽ sử dụng các thuộc tính và phương thức sau của mô -đun PYTZ để hoạt động với timezone trong Python ...
pytz.utc: Nhận thời gian UTC tiêu chuẩn ..
pytz.timezone ('vùng'): tạo đối tượng múi giờ của một khu vực cụ thể ..
pytz.astimezone (): Chuyển đổi thời gian của một múi giờ cụ thể thành múi giờ khác ..

Làm thế nào để bạn thay đổi timezone từ múi giờ này sang múi giờ khác trong Python?

Chuyển đổi thành múi giờ mới bằng cách sử dụng .astimezone () trên DateTime/Dấu thời gian mới được định vị từ Bước 2 với đối tượng PYTZ của Timezone mong muốn làm đầu vào, ví dụ:Localized_Timestamp.Astimezone (new_timezone).using . astimezone() on the newly localized datetime/timestamp from step 2 with the desired timezone's pytz object as input e.g. localized_timestamp. astimezone(new_timezone) .

Thư viện Python nào được sử dụng cho múi giờ?

Mô -đun ZoneInfo cung cấp triển khai múi giờ cụ thể để hỗ trợ cơ sở dữ liệu múi giờ IANA như được quy định ban đầu trong PEP 615.zoneinfo module provides a concrete time zone implementation to support the IANA time zone database as originally specified in PEP 615.