Review Python datetime LÀ múi giờ
Kinh Nghiệm về Python datetime LÀ múi giờ 2022
Bùi Ngọc Phương Anh đang tìm kiếm từ khóa Python datetime LÀ múi giờ được Cập Nhật vào lúc : 2022-12-18 10:08:04 . Với phương châm chia sẻ Bí kíp về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha.Múi giờ biểu thị thời gian chuẩn hóa tùy thuộc vào phần nào của thế giới đang được xem xét
Nội dung chính Show- Tạo một đối tượng ngày giờ nhận ra múi giờTạo đối tượng TimeZone Aware Datetime Sử dụng lớp múi giờNhận thời gian hiện tại ở múi giờ khác nhauNhận thông tin múi giờ bằng tzinfoChuyển đổi Một trong những múi giờLàm việc với những múi giờ địa phươngLàm cách nào để đã có được một ngày trong Python?Làm cách nào để đặt múi giờ trong Python datetime?Python datetime có múi giờ không?Thời gian của Python có ở UTC không?
Nói một cách đơn giản, múi giờ đề cập đến giờ địa phương của một khu vực. UTC (Giờ phối hợp quốc tế) là thời gian thiên văn nhờ vào vòng quay của trái đất, là tiêu chuẩn để phối hợp thời gian nhờ vào khu vực của thế giới
Ghi chú. UTC – Giờ phối hợp quốc tế là tiêu chuẩn thời gian chung trên toàn thế giới. Vì vậy, trong Python, để thao tác với múi giờ mà không gặp bất kỳ sự cố nào, bạn nên sử dụng UTC làm múi giờ cơ sở của tớ
Ví dụ: CT (Giờ Trung tâm) ở Bắc và Nam Mỹ chậm hơn 5 hoặc 6 giờ và được biểu thị là UTC-5 hoặc UTC-6 nhờ vào Tiết kiệm ánh sáng ban ngày. Dưới đây là một vài ví dụ
UTC OffsetLocationsNameLocationUTC +9Nhật Bản, Nước Hàn và 5 quốc gia khác JSTTokyoUTC +5. 30 IndiaISTẤn Độ UTC +1 Vương quốc Anh và 20 BSTLondonUTC -10Hawaii/USA và 2 HSTHonoluluTimeZones khácPython đáp ứng lớp cơ sở trừu tượng
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:007 đáp ứng những phương thức để xử lý múi giờ. Nhưng lớp này là một lớp cơ sở trừu tượng và tránh việc được khởi tạo trực tiếp. Chúng ta cần định nghĩa một lớp con của tzinfo để nắm bắt thông tin về một múi giờ rõ ràng
Thư viện pytz đã triển khai lớp múi giờ để xử lý những phần bù cố định và thắt chặt tùy ý từ UTC và múi giờ. Thư viện này được cho phép tính toán múi giờ đúng chuẩn và đa nền tảng, đồng thời xử lý và xử lý vấn đề về thời gian không rõ ràng vào cuối giờ tiết kiệm ánh sáng ban ngày
pytz là một triển khai rõ ràng của lớp cơ sở trừu tượng tzinfo và được sử dụng để tạo những đối tượng datetime nhận ra múi giờ
Ví dụ: Hàm
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:008 trả về ngày giờ địa phương hiện tại mà không còn bất kỳ thông tin múi giờ nào. Sử dụng thư viện pytz, tất cả chúng ta hoàn toàn có thể chuyển tên múi giờ cho hàm này để lấy ngày giờ hiện tại trong múi giờ đã cho
Chúng tôi sẽ sử dụng những thuộc tính và phương thức sau của mô-đun pytz để thao tác với múi giờ trong Python
- Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:009. Nhận múi giờ UTC tiêu chuẩnfrom datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)0. Tạo đối tượng múi giờ của một khu vực cụ thểfrom datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)1. Chuyển đổi thời gian của một múi giờ rõ ràng sang múi giờ khác
Tạo một đối tượng ngày giờ nhận ra múi giờ
Trong Python, một đối tượng ngày hoàn toàn có thể được đề cập có hoặc không còn múi giờ. Dựa vào đó, một đối tượng được gọi là Naive hoặc Aware. Theo mặc định, một đối tượng ngày là ngây thơ. Một đối tượng ngày giờ hoặc thời gian được biết nếu nó giữ giá trị múi giờ (tz)
Thực hiện theo tiến trình phía dưới để tạo Đối tượng Datetime nhận ra múi giờ trong Python. –
- Cài đặt mô-đun pytz nếu không được setup bằng lệnh from datetime import datetime
import pytz
unaware = datetime(2022, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)
# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)2Sử dụng hàm from datetime import datetime
import pytz
unaware = datetime(2022, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)
# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)3 để tạo đối tượng múi giờSử dụng hàm from datetime import datetime
import pytz
unaware = datetime(2022, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)
# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)4 hoặc from datetime import datetime
import pytz
unaware = datetime(2022, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)
# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)5 để tạo múi giờ nhận ra ngày giờ hiện tại
Ví dụ
from datetime import datetime import pytz # current Datetime unaware = datetime.now() print('Timezone naive:', unaware) # Standard UTC timezone aware Datetime aware = datetime.now(pytz.utc) print('Timezone Aware:', aware) # US/Central timezone datetime aware_us_central = datetime.now(pytz.timezone('US/Central')) print('US Central DateTime', aware_us_central)đầu ra
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:00
- Để đã có được thời gian UTC, chúng tôi đã sử dụng Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:009 làm tham số cho hàm Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:008. Phần bù ở cuối là +00. 00 là độ lệch UTC tiêu chuẩnĐể đã có được thời gian của CDT, chúng tôi đã sử dụng vùng 'US/Central' để tạo múi giờ. Phần bù ở cuối là -05. 00 là phần bù UTC của vùng CDT
Tham khảo list all timezones trong Python nếu bạn chưa chắc như đinh đúng chuẩn tên múi giờ để tạo ngày giờ đúng múi giờ
Để nhận ra múi giờ ngày giờ cũ/hiện tại, hãy sử dụng đoạn mã sau
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)Ghi chú. Phương thức
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)8 trả về phiên bản from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)9 mớiĐịnh dạng UTC DateTime để lấy tên múi giờ
Trích xuất tên múi giờ từ UTC DateTime bằng phương pháp sử dụng định dạng DateTime trong Python. Sử dụng thông tư
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0060 để lấy tên múi giờTimezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:006
Ghi chú. IST là tên gọi múi giờ
Tạo đối tượng TimeZone Aware Datetime Sử dụng lớp múi giờ
Hãy xem cách tạo một đối tượng
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)9 nhận ra múi giờ mà không cần pytzCác mô-đun datetime có lớp
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0062, lớp nó lại là lớp con của lớp cơ sở trừu tượng Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0063. Mỗi phiên bản được tạo của lớp múi giờ đại diện cho phần bù của múi giờ từ Giờ phối hợp quốc tế (UTC)
Chúng ta hoàn toàn có thể tạo một đối tượng
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)9 nhận ra UTC bằng phương pháp gán Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0065
cú pháp
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:003
Ở đây
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0066 đại diện cho việc khác lạ giữa giờ địa phương và UTC (Giờ quốc tế phối hợp). Nó hoàn toàn có thể là một đối tượng đồng bằng thời gian nằm trong khoảng chừng từ giờ=-24 đến +24
Ví dụ
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:005
Ghi chú. chúng tôi đang đặt phần bù UTC bằng phương pháp sử dụng lớp timedelta
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0067
Nhận thời gian hiện tại ở múi giờ rất khác nhau
Sử dụng mô-đun pytz, chúng tôi hoàn toàn có thể nhận được ngày và giờ hiện tại của bất kỳ múi giờ nào
cú pháp
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:007
bước
- Sử dụng hàm from datetime import datetime
import pytz
unaware = datetime(2022, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)
# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)3 để tạo đối tượng múi giờSử dụng hàm from datetime import datetime
import pytz
unaware = datetime(2022, 6, 15, 8, 45, 17, 5)
print('Timezone naive:', unaware)
# Convert unaware Datetime to UTC timezone aware Datetime
aware = unaware.replace(tzinfo=pytz.UTC)
print(aware)4 để lấy ngày giờ hiện tại của múi giờ đã cho
Ghi chú. UTC – Giờ phối hợp quốc tế là tiêu chuẩn thời gian chung trên toàn thế giới. Vì vậy, để thao tác với múi giờ mà không gặp bất kỳ sự cố nào, bạn nên sử dụng UTC làm múi giờ cơ sở của tớ
Trong ví dụ này, tất cả chúng ta sẽ xem cách lấy ngày giờ hiện tại theo những múi giờ sau
Hoa Kỳ. Nhận Ngày và Giờ hiện tại theo Múi giờ sau của Hoa Kỳ
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)0đầu ra
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)1Múi giờ khác
from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)2đầu ra
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:000
Cũng thấy. Chuyển đổi Một trong những múi giờ
Nhận thông tin múi giờ bằng tzinfo
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:007 là một lớp cơ sở trừu tượng chứa thông tin về đối tượng ngày hoặc giờ được truyền cho chúng
tzinfo thường chứa những thông tin sau. –
- Tên múi giờ của DatetimeBù đắp từ UTC (Giờ phối hợp quốc tế)DST (Tiết kiệm ánh sáng ban ngày)
Lớp tzinfo đáp ứng phương thức sau để lấy thông tin múi giờ. –
- Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0031. Trả về tên múi giờ tương ứng với đối tượng from datetime import datetime import pytz unaware = datetime(2022, 6, 15, 8, 45, 17, 5) print('Timezone naive:', unaware) # Convert unaware Datetime to UTC timezone aware Datetime aware = unaware.replace(tzinfo=pytz.UTC) print(aware)9 Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0033. Phương thức này trả về tên được sử dụng trong khi tạo đối tượng múi giờTimezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0034. Phương thức này trả về tổng phần bù từ UTC phải là một đối tượng timedelta. Các giá trị của timedelta là dương nếu nó ở phía đông của UTC và âm nếu ở phía tây của UTC. Tổng độ lệch gồm có cả giá trị múi giờ và DST (Tiết kiệm ánh sáng ban ngày). Do đó, phạm vi của timedelta nằm trong khoảng chừng từ -timedelta(hours=24) đến timedelta(hours=24)Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0035. Phương thức này trả về độ lệch dst trong những vùng có hiệu lực hiện hành dst. Trong những trường hợp khác, nó sẽ chỉ trả về Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0036. tin tức dst đã là một phần của utcoffset, do đó, tTimezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0037 sẽ trả về phần bù tiêu chuẩn của múi giờ bất kể ngày và giờ nhưng chỉ trên vị trí địa lý
Ví dụ
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:001
Mã của chúng tôi tạo ra những thông tin sau
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:002
Các mô-đun datetime có lớp
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0062, lớp nó lại là lớp con của lớp cơ sở trừu tượng Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0063
Chuyển đổi Một trong những múi giờ
Sử dụng phương pháp
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0050 để quy đổi ngày giờ từ múi giờ này sang múi giờ 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 địnhTimezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:003
đầu ra
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:004
Làm việc với những múi giờ địa phương
Ghi chú. Để thao tác với múi giờ mà không gặp bất kỳ sự cố nào, bạn nên sử dụng UTC làm múi giờ cơ sở chứ không phải giờ địa phương
Như đã đề cập, tất cả chúng ta hoàn toàn có thể quy đổi một datetime ngây thơ thành một instance datetime đã biết với giá trị múi giờ được đặt thành giá trị chuẩn hóa cục bộ
Chúng ta hoàn toàn có thể làm điều đó với một trong những phương thức của
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0051 mang tên là Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0052(). Phương pháp này được sử dụng để quy đổi ngây thơ thành giờ địa phương. Nó đồng ý hai đối số, rõ ràng là đối tượng datetime để bản địa hóa và một cờ Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0053 tùy chọn
Cờ này được đặt thành đúng nếu chúng tôi muốn bản địa hóa và thông tin tiết kiệm ánh sáng ban ngày và sai nếu chúng tôi chỉ muốn thời gian bù tiêu chuẩn và sai nếu ngược lại
Như đã đề cập ở trên,
Timezone naive: 2022-07-09 13:22:02.256978Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0063 có một phương thức gọi là Timezone naive: 2022-07-09 13:22:02.256978
Timezone Aware: 2022-07-09 07:52:02.256978+00:00
US Central DateTime 2022-07-09 02:52:02.313026-05:0055 sẽ trả về thông tin Giờ tiết kiệm ánh sáng ban ngày (DST) nếu cờ được đặt thành đúng
Post a Comment