Tôi đang cố gắng chuyển đổi múi giờ nhận biết datetime
đối tượng thành UTC và sau đó quay lại múi giờ ban đầu của nó. Tôi có một đoạn sauchuyển đổi múi giờ và múi giờ với pytz - hành vi thổi tâm trí
t = datetime(
2013, 11, 22, hour=11, minute=0,
tzinfo=pytz.timezone('Europe/Warsaw')
)
bây giờ trong ipython:
In [18]: t
Out[18]: datetime.datetime(
2013, 11, 22, 11, 0, tzinfo=<DstTzInfo 'Europe/Warsaw' WMT+1:24:00 STD>
)
và bây giờ chúng ta hãy cố gắng làm chuyển đổi sang UTC và ngược lại. Tôi mong muốn có cùng một đại diện như:
In [19]: t.astimezone(pytz.utc).astimezone(pytz.timezone('Europe/Warsaw'))
Out[19]: datetime.datetime(
2013, 11, 22, 10, 36, tzinfo=<DstTzInfo 'Europe/Warsaw' CET+1:00:00 STD>
)
Tuy nhiên, chúng tôi thấy rằng Out[18]
và Out[19]
khác nhau. Chuyện gì vậy?
cửa hàng Django datetimes cơ sở dữ liệu ngây thơ khôn ngoan. Nếu bạn xử lý trường hợp đó, hãy xem tại đây để chuyển đổi ngày thành múi giờ bạn cần: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#usage – Jingo
liệu Django có lưu trữ các thời gian ngây thơ không phải là được kiểm soát bởi cài đặt 'USE_TZ'. Nếu đó là 'True' thì Django xử lý datetimes dưới dạng các biểu mẫu vv như đang ở trong [múi giờ hiện tại] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting-the-current-time -zone) và lưu trữ chúng trong db được chuyển thành UTC. – Anentropic