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à, Bây giờ bạn muốn chuyển đổi nó thành UTC Timezone và kết quả sẽ giống như, 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.10/21/2021 08:18:19
10/21/2021 02:48:19
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:193 đạ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:194 chỉ vào một đối tượng
10/21/2021 02:48:195 đạ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:196 trên đối tượng
10/21/2021 02:48:193 của chúng tôi:
10/21/2021 02:48:190
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:195 của Python có phương thức
10/21/2021 02:48:199:
10/21/2021 02:48:191
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:192
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:195 [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].