Hướng dẫn how do you convert timezone to utc in python? - làm thế nào để bạn chuyển đổi múi giờ sang utc trong python?

Giả sử chúng ta có một đối tượng

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
3 đại diện cho một thời gian cụ thể (trong múi giờ địa phương của máy của chúng ta).

>>> import datetime
>>> april_fools = datetime.datetime(2030, 4, 1, 10, 0)

Biến

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
4 chỉ vào một đối tượng
>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
5 đại diện cho 10 giờ sáng hoặc ngày 1 tháng 4 năm 2030 (trong timezone địa phương của chúng tôi):

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)

Chuyển đổi thời gian sang UTC trong Python

Để chuyển đổi thời gian này sang UTC, chúng tôi có thể sử dụng phương thức

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
6 trên đối tượng
>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
3 của chúng tôi:

>>> utc_april_fools = april_fools.astimezone(datetime.timezone.utc)
>>> utc_april_fools
datetime.datetime(2030, 4, 1, 17, 0, tzinfo=datetime.timezone.utc)
>>> print(utc_april_fools)
2030-04-01 17:00:00+00:00

Nhận thời gian hiện tại ở UTC

Điều gì sẽ xảy ra nếu chúng ta muốn chuyển đổi thời gian hiện tại sang UTC?

Trong khi các đối tượng

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
5 của Python có phương thức
>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
9:

>>> datetime.datetime.utcnow()
datetime.datetime(2030, 4, 1, 8, 15, 59, 89013)

Tài liệu Python khuyến nghị chuyển thời gian đích (

>>> utc_april_fools = april_fools.astimezone(datetime.timezone.utc)
>>> utc_april_fools
datetime.datetime(2030, 4, 1, 17, 0, tzinfo=datetime.timezone.utc)
>>> print(utc_april_fools)
2030-04-01 17:00:00+00:00
0 trong trường hợp của chúng tôi) cho phương thức
>>> utc_april_fools = april_fools.astimezone(datetime.timezone.utc)
>>> utc_april_fools
datetime.datetime(2030, 4, 1, 17, 0, tzinfo=datetime.timezone.utc)
>>> print(utc_april_fools)
2030-04-01 17:00:00+00:00
1 thay thế: thay vào đó:

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2030, 4, 1, 8, 15, 59, 89013, tzinfo=datetime.timezone.utc)

Bằng cách đó, bạn sẽ kết thúc với một đối tượng Aware-Aware

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
5 (xem các đối tượng ngây thơ và nhận thức để biết thêm về nhận thức về thời gian).

Trong bài viết này, chúng tôi sẽ thảo luận về cách chuyển đổi DateTime địa phương sang UTC Timezone trong Python.

Giả sử bạn đang ở trong một múi giờ không phải là UTC. Nhưng bạn có một datetime trong timezone địa phương của bạn và bạn muốn chuyển đổi nó thành UTC Timezone. Ví dụ: nếu bạn đang ở châu Á/calcutta múi giờ và dấu thời gian trong múi giờ địa phương của bạn là,

10/21/2021 08:18:19

Bây giờ bạn muốn chuyển đổi nó thành UTC Timezone và kết quả sẽ giống như,

10/21/2021 02:48:19

Trước khi chúng ta bắt đầu xem xét các giải pháp, một điểm quan trọng cần hiểu là các giải pháp này sẽ áp dụng cho tất cả các múi giờ. Điều đó có nghĩa là, bất kể thời gian địa phương của bạn là gì, bạn có thể dễ dàng chuyển đổi DateTime thành định dạng UTC bằng các giải pháp này. Hãy bắt đầu nhìn vào chúng từng cái một.

Chúng tôi sẽ sử dụng mô -đun DateTime cho việc này. Đầu tiên, chúng tôi sẽ tạo một đối tượng DateTime từ một chuỗi. Đối tượng DateTime này sẽ không có múi giờ được liên kết với nó và nó có nghĩa là nó có thể được xem xét là thời gian địa phương. Sau đó, chúng tôi sẽ thay đổi múi giờ của đối tượng DateTime thành UTC bằng cách gọi hàm astimezone () trên đối tượng DateTime.astimezone() function on the datetime object.

Quảng cáo

Hàm astimezone () chấp nhận một thể hiện múi giờ tz như một đối số. Nó trả về một thể hiện DateTime mới theo tham số múi giờ được chỉ định TZ, tức là, nó chuyển đổi thời gian trong cuộc gọi DateTime thành múi giờ được chỉ định và trả về một đối tượng DateTime mới chứa nó.astimezone() function accepts a timezone instance tz as an argument. It returns a new DateTime instance according to the specified time zone parameter tz, i.e., it converts the time in calling datetime to the specified timezone and returns a new datetime object containing it.

Hãy để sử dụng điều này để chuyển đổi thời gian địa phương sang UTC, tức là.

from datetime import datetime
import pytz

dt_str  = "10/21/2021 8:18:19"
format  = "%m/%d/%Y %H:%M:%S"

# Create datetime object in local timezone
local_dt = datetime.strptime(dt_str, format)

print('Datetime in Local Time zone: ', local_dt)

# Convert local datetime to UTC time-zone datetime
dt_utc = local_dt.astimezone(pytz.UTC)

print('Datetime in UTC Time zone: ', dt_utc)

dt_utc_str = dt_utc.strftime(format)

print('Datetime string in UTC Time zone: ', dt_utc_str)

Output:

Datetime in Local Time zone:  2021-10-21 08:18:19
Datetime in UTC Time zone:  2021-10-21 02:48:19+00:00
Datetime string in UTC Time zone:  10/21/2021 02:48:19

Chuyển đổi múi giờ của đối tượng DateTime từ cục bộ sang UTC trong Python

Thay vì chuỗi, nếu bạn đã có đối tượng DateTime với timezone cục bộ (hoặc thời gian null), chúng ta có thể chuyển đổi nó trực tiếp thành đối tượng DateTime bằng thời gian UTC bằng cách sử dụng astimezone (). Ví dụ,

from datetime import datetime
import pytz

# Create datetime object in local timezone
local_dt = datetime(2021, 10, 4, 9, 10, 34, 300030)

print('Datetime in Local Time zone: ', local_dt)


# Convert local datetime to UTC time-zone datetime
dt_utc = local_dt.astimezone(pytz.UTC)

print('Datetime in UTC Time zone: ', dt_utc)

Output:

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
0

Chuyển đổi giờ địa phương hiện tại sang UTC trong Python

Giả sử chúng ta có một đối tượng DateTime có chứa thời gian hiện tại trong timezone cục bộ và nó có thông tin múi giờ được liên kết với nó. Sử dụng astimezone (), chúng ta có thể chuyển đổi nó thành utc timezone và nhận UTC hiện tại. Đối với điều đó, chúng tôi sẽ chuyển pytz.utc như là đối số cho hàm astimezone (). Ví dụ,astimezone(), we can convert it to UTC timezone and get the current UTC. For that, we will pass the pytz.UTC as argument to astimezone() function. For example,

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
1

Output:

>>> april_fools
datetime.datetime(2030, 4, 1, 10, 0)
2

Summary:

Chúng tôi đã học cách chuyển đổi thời gian địa phương sang UTC Timezone trong Python.

Làm thế nào để bạn có được UTC trong Python?

Nhận thời gian UTC hiện tại..
Sử dụng phương thức DateTime.now () để có thời gian hiện tại ..
Sử dụng lớp timezone với phiên bản UTC với phương thức bây giờ () để có được thời gian UTC hiện tại trong Python ..

Làm thế nào để bạn chuyển đổi thời gian địa phương sang UTC?

Thêm thời gian địa phương bù vào thời gian UTC.Ví dụ: nếu độ bù thời gian địa phương của bạn là -5: 00 và nếu thời gian UTC được hiển thị là 11:00, hãy thêm -5 đến 11. Cài đặt thời gian khi được điều chỉnh để bù là 06:00 (6:00 A.M.).. For example, if your local time offset is -5:00, and if the UTC time is shown as 11:00, add -5 to 11. The time setting when adjusted for offset is 06:00 (6:00 A.M.).

Làm cách nào để thay đổi múi giờ trong Python?

Chuyển đổi giữa thời gian sử dụng DateTime.Phương thức ASTIMEZONE () để 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.Use the datetime. astimezone() method to convert the datetime from one timezone to another. This method uses an instance of the datetime object and returns a new datetime of a given timezone.

Làm thế nào để bạn chuyển đổi UTC sang thời gian trung tâm trong Python?

Chuyển đổi UTC sang CST trong Python..
Sử dụng mô -đun DateUtil.tz để chuyển đổi ngày và thời gian từ UTC sang CST trong Python ..
Sử dụng mô -đun PYTZ để chuyển đổi ngày và thời gian từ UTC sang CST trong Python ..
Sử dụng mô -đun ZoneInfo để chuyển đổi ngày và thời gian từ UTC sang CST trong Python ..