Hướng dẫn convert utc string to datetime python - chuyển đổi chuỗi utc thành datetime python

Tôi đang sử dụng API PayPal và tôi lấy lại dấu thời gian ở định dạng sau. Tôi cố gắng phân tích cú pháp điều này vào một đối tượng DateTime bằng cách sử dụng Strptime, nhưng tôi gặp lỗi sau:

(Pdb) datetime.strptime('2012-03-01T10:00:00Z','%Y-%M-%dT%H:%M:%SZ')
*** error: redefinition of group name 'M' as group 5; was group 2

Ngoài ra, vì định dạng này được cho là một định dạng khá tiêu chuẩn không có chức năng có sẵn cho việc này?

EDIT:

OK có vẻ là một lỗi đánh máy. %M đầu tiên nên là %m

hỏi ngày 24 tháng 2 năm 2012 lúc 15:58Feb 24, 2012 at 15:58

Hướng dẫn convert utc string to datetime python - chuyển đổi chuỗi utc thành datetime python

arno_varno_varno_v

16.4K3 Huy hiệu vàng27 Huy hiệu bạc31 Huy hiệu Đồng3 gold badges27 silver badges31 bronze badges

Trình phân tích cú pháp từ DateUtil là bạn của bạn.

Bạn sẽ phải cài đặt PIP DateUtil nhưng bạn đã lưu túi và túi mã chuyển đổi ngày:

pip install python-dateutil

Bạn có thể sử dụng nó như thế này.

from dateutil import parser
ds = '2012-03-01T10:00:00Z' # or any date sting of differing formats.
date = parser.parse(ds)

Bạn sẽ thấy bạn có thể xử lý hầu hết mọi định dạng chuỗi ngày với trình phân tích cú pháp này và bạn sẽ nhận được một ngày Python tiêu chuẩn tốt đẹp

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 16:31Feb 24, 2012 at 16:31

Matt Alcockmatt AlcockMatt Alcock

12k13 huy hiệu vàng45 huy hiệu bạc60 huy hiệu đồng13 gold badges45 silver badges60 bronze badges

1

Có vẻ như bạn đang trộn

pip install python-dateutil
3 (phút) và
pip install python-dateutil
4 (tháng).

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 16:01Feb 24, 2012 at 16:01

Jcolladojcolladojcollado

38.4K8 Huy hiệu vàng102 Huy hiệu bạc133 Huy hiệu đồng8 gold badges102 silver badges133 bronze badges

Vấn đề là bạn sử dụng

pip install python-dateutil
3 hai lần. Sử dụng
pip install python-dateutil
4 trong các tháng:

>>> datetime.strptime('2012-03-01T10:00:00Z','%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2012, 3, 1, 10, 0)

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 16:02Feb 24, 2012 at 16:02

Fred Foofred FooFred Foo

348K73 Huy hiệu vàng726 Huy hiệu bạc824 Huy hiệu Đồng73 gold badges726 silver badges824 bronze badges

2

Bạn có một lỗi đánh máy.

pip install python-dateutil
3 được sử dụng hai lần. Bạn có nghĩa là sử dụng
pip install python-dateutil
4 trong tháng. Từ các tài liệu:

%m  Month as a decimal number [01,12].   
%M  Minute as a decimal number [00,59].

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 16:04Feb 24, 2012 at 16:04

istrubleistrubleistruble

Huy hiệu vàng 13K249 Huy hiệu bạc51 Huy hiệu đồng2 gold badges49 silver badges51 bronze badges

Hướng dẫn convert utc string to datetime python - chuyển đổi chuỗi utc thành datetime python

Bài viết này sẽ thảo luận về cách chuyển đổi thời gian UTC (trong chuỗi hoặc dưới dạng đối tượng DateTime) sang thời gian địa phương 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 UTC Timezone và bạn muốn chuyển đổi nó thành timezone địa phương của bạn. Ví dụ: bạn có dấu thời gian UTC như một chuỗi,

10/21/2021 8:18:19

Bây giờ bạn muốn chuyển đổi nó thành timezone địa phương của bạn. Nếu bạn đang ở châu Á/calcutta timezone, thì kết quả sẽ giống như,

10/21/2021 13:48:19

Tất cả các giải pháp chúng tôi sẽ thảo luận để chuyển đổi UTC sang thời gian địa phương, 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 UTC sang thời gian địa phương của bạn 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 ta có thể sử dụng mô -đun DateTime cho việc này. Các bước thực hiện như sau,

Quảng cáo

  • Tạo một đối tượng DateTime từ chuỗi thời gian UTC.
  • Đối tượng DateTime này sẽ không có múi giờ được liên kết với nó. Do đó, gán thời gian UTC cho đối tượng DateTime này bằng hàm thay thế (tzinfo = pytz.utc).
  • Chuyển đổi múi giờ của đối tượng DateTime thành múi giờ cục bộ bằng cách gọi hàm astimezone () trên đối tượng DateTime.

Hàm astimezone () chấp nhận một thể hiện múi giờ tz làm đố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ó.

Hãy cùng xem một ví dụ hoàn chỉnh để chuyển đổi chuỗi DateTime UTC sang thời gian cục bộ, tức là.

from datetime import datetime, tzinfo
from dateutil import tz
import pytz

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

# Create datetime object in local timezone
dt_utc = datetime.strptime(dt_str, format)
dt_utc = dt_utc.replace(tzinfo=pytz.UTC)

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

# Get local timezone
local_zone = tz.tzlocal()
# Convert timezone of datetime from UTC to local
dt_local = dt_utc.astimezone(local_zone)

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

local_time_str = dt_local.strftime(format)

print('Time as string in Local Time zone: ', local_time_str)

Output:

Datetime in UTC Time zone:  2021-10-21 08:18:19+00:00
Datetime in Local Time zone:  2021-10-21 13:48:19+05:30
Time as string in Local Time zone:  10/21/2021 13:48:19

Chuyển đổi đối tượng DateTime UTC từ DateTime cục bộ

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

from datetime import datetime
from dateutil import tz
import pytz

# Create Datetime object with UTC timezone
dt_utc = datetime(2021, 10, 4, 9, 10, 34, 300030, tzinfo=pytz.UTC )

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

# Get local timezone
local_zone = tz.tzlocal()

# Convert UTC to local time zone
local_dt = dt_utc.astimezone(local_zone)

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

Output:

pip install python-dateutil
0

Chuyển đổi DateTime UTC hiện tại thành DateTime cục bộ trong Python

Giả sử chúng ta có một đối tượng DateTime chứa thời gian hiện tại trong thời gian UTC và có thông tin múi giờ. Sử dụng astimezone (), chúng ta có thể chuyển đổi nó thành múi giờ địa phương và nhận thời gian địa phương hiện tại. Vì vậy, chúng tôi sẽ chuyển thời gian cục bộ như một đối số cho hàm astimezone (). Ví dụ,

pip install python-dateutil
1

Output:

pip install python-dateutil
2

Bản tóm tắt

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

Làm cách nào để chuyển đổi thời gian UTC cho đến nay trong Python?

Phương pháp 1: Sử dụng hàm astimezone () Sử dụng từ khóa nhập, để nhập DateTime (để hoạt động với ngày và thời gian, Python có mô -đun gọi là DateTime). Sử dụng từ khóa nhập, để nhập múi giờ từ mô -đun PYTZ. Nhập định dạng ngày dưới dạng chuỗi bằng hàm input () và tạo một biến để lưu trữ nó.

Làm thế nào để bạn chuyển đổi UTC thành dấu thời gian trong Python?

Làm cách nào để chuyển đổi dấu thời gian UTC thành DateTime trong Python ?..
Nhập DateTime DT = DateTime. ngày giờ..
DT_UTC_AWARE = ​​DateTime. ngày giờ..
DT_UTC_NAIVE = DateTime. ngày giờ..
In (dt) # 1970-01-01 09:00:00 in (dt. Timestamp ()) # 0.0 in (loại (dt ..
in (dt_utc_aware) # 1970-01-01 00: 00: 00+00: 00 in (DT_UTC_AWARE ..

Làm cách nào để chuyển đổi một chuỗi thành DateTime trong Python?

Chúng ta có thể chuyển đổi một chuỗi thành DateTime bằng hàm strptime ().Hàm này có sẵn trong các mô -đun DateTime và Time để phân tích một chuỗi vào các đối tượng DateTime và thời gian tương ứng.using strptime() function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.

Làm cách nào để chuyển đổi thời gian UTC sang thời gian của tôi?

.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 cho bù là 06:00 (6:00 A.M.).Lưu ý ngày cũng theo định dạng UTC.Add the local time offset to the UTC time. 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.). Note The date also follows UTC format.