Hướng dẫn how do i change timezone to utc in python? - làm cách nào để thay đổi múi giờ thành utc trong python?

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:

Datetime in Local Time zone:  2021-10-04 09:10:34.300030        
Datetime in UTC Time zone:  2021-10-04 03:40:34.300030+00:00 

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,

from datetime import datetime
import pytz

# Get current time in local timezone
local_dt = datetime.now()

print('Current Local Time: ', local_dt)

# Convert local to UTC timezone 
dt_utc = local_dt.astimezone(pytz.UTC)

print('Current time in UTC Time-zone: ', dt_utc)

Output:

Current Local Time:  2021-10-17 10:12:55.502825
Current time in UTC Time-zone:  2021-10-17 04:42:55.502825+00:00

Summary:

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

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

10/21/2021 02:48:19
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

10/21/2021 02:48:19
4 chỉ vào một đối tượng
10/21/2021 02:48:19
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

10/21/2021 02:48:19
6 trên đối tượng
10/21/2021 02:48:19
3 của chúng tôi:

10/21/2021 02:48:19
0

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

10/21/2021 02:48:19
5 của Python có phương thức
10/21/2021 02:48:19
9:

10/21/2021 02:48:19
1

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

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)
0 trong trường hợp của chúng tôi) cho phương thức
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)
1 thay thế: thay vào đó:

10/21/2021 02:48:19
2

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

10/21/2021 02:48:19
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).

UTC ở Python là gì?

Dấu thời gian UTC là một số trong vài giây (hoặc mili giây) từ kỷ nguyên (được định nghĩa là ngày 1 tháng 1 năm 1970 00:00:00 tại thời gian GMT timezone +00: 00).Epoch được neo trên múi giờ GMT và do đó là một thời điểm tuyệt đối.Một dấu thời gian UTC là một phần bù từ một thời gian tuyệt đối do đó xác định một thời điểm tuyệt đối.a number in seconds (or milliseconds) from Epoch (defined as 1 January 1970 00:00:00 at GMT timezone +00:00 offset). Epoch is anchored on the GMT timezone and therefore is an absolute point in time. A UTC timestamp being an offset from an absolute time therefore defines an absolute point in time.

UTC là thời gian nào?

Trước năm 1972, thời điểm này được gọi là thời gian trung bình của Greenwich (GMT) nhưng hiện được gọi là điều phối thời gian phổ biến hoặc thời gian phổ quát (UTC).Đó là một thang thời gian phối hợp, được duy trì bởi Cục Quốc tế Des Poids et mesures (BIPM).Nó còn được gọi là "Thời gian Z" hoặc "Thời gian Zulu".Universal Time Coordinated (UTC). It is a coordinated time scale, maintained by the Bureau International des Poids et Mesures (BIPM). It is also known as "Z time" or "Zulu Time".