Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách so sánh thời gian với các múi giờ khác nhau trong python bằng các phương pháp bên dưới
So sánh Múi giờ đã cho với Múi giờ địa phương
So sánh thời gian hiện tại của hai múi giờ
So sánh hai thời gian với múi giờ khác nhau
Phương pháp 1. So sánh Múi giờ đã cho với Múi giờ địa phương
Thuật toán [Các bước]
Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn –
Sử dụng từ khóa nhập để nhập các mô-đun pytz datetime
Sử dụng hàm timezone[] [lấy múi giờ của một vị trí cụ thể] của mô-đun pytz, để lấy múi giờ của “CET”[Múi giờ cục bộ] và lưu trữ nó trong một biến
Lấy múi giờ UTC bằng hàm timezone[] và lưu nó vào một biến khác
Chuyển đổi thời gian trên sang múi giờ khác bằng datetime. hàm astimezone[] [Datetime. astimezone[] được sử dụng để sửa đổi các đối tượng của lớp DateTime trong mô-đun DateTime] bằng cách chuyển múi giờ địa phương làm đối số cho nó
In các giá trị của múi giờ địa phương và UTC
So sánh xem giá trị của múi giờ địa phương có bằng múi giờ UTC hay không bằng cách sử dụng câu lệnh điều kiện if và in theo nó
Chương trình sau trả về thông báo của người dùng sau khi so sánh cả múi giờ địa phương với múi giờ đã cho -
Thí dụ
đầu ra
Formatted DateTime in Local Timezone : 2022:09:14 12:05:05 CEST +0200 Formatted DateTime in UTC Timezone : 2022:09:14 10:05:05 UTC +0000 UTC TimeZone is behind the Local Timezone by +0200 Hours
Phương pháp 2. So sánh thời gian hiện tại của hai múi giờ
Múi giờ có thể khiến mọi thứ trở nên phức tạp hơn, nhưng may mắn thay, chúng ta có thể sử dụng logic tương tự để so sánh. Sự khác biệt duy nhất là chúng tôi đang làm việc với các ngày đã biết, bao gồm thông tin bổ sung về múi giờ ở nơi họ đang ở
Thuật toán [Các bước]
Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn –
Sử dụng từ khóa nhập, để nhập ngày giờ [Để làm việc với ngày và giờ, Python có một mô-đun gọi là datetime], mô-đun pytz [để biết ngày tháng ngây thơ của chúng ta]
Sử dụng hàm timezone[] [lấy múi giờ của một vị trí cụ thể] của mô-đun pytz, để lấy múi giờ của “America/New_York”
Sử dụng hàm timezone[] [lấy múi giờ của một vị trí cụ thể] của mô-đun pytz, để lấy múi giờ của “Châu Âu/London”
Cung cấp ngày giờ hiện tại bằng cách sử dụng datetime. hàm now[]
Chuyển đổi các múi giờ trên sang chức năng bản địa hóa bằng hàm localize[]
localize[] function When creating datetime-aware objects with an initial fixed datetime value, the correct function to use is localise[]. The original datetime value will be retained in the resulting datetime aware object.
Bây giờ cả hai thời điểm đều ở cùng một múi giờ
So sánh các múi giờ theo yêu cầu bằng cách sử dụng câu lệnh điều kiện if
Thí dụ
đầu ra
The date and time with timezone newyork: 2022-09-14 10:13:27.727111-04:00 The date and time with timezone london: 2022-09-14 10:13:27.727111+01:00 Current Time in Newyork time is older than London by 5.0 hours
Phương pháp 3. So sánh hai thời gian với múi giờ khác nhau
Nó tương tự như phương pháp trước, ngoại trừ việc chúng tôi đã cung cấp DateTime của hai múi giờ
Thí dụ
đầu ra
The date and time with timezone newyork: 2013-03-15 20:05:10-04:00 The date and time with timezone london: 2013-03-15 20:05:10+00:00 Given Two Times of two different Time Zones are not equal by 4.0 hours
Phần kết luận
Chúng tôi đã học cách so sánh thời gian ở các múi giờ khác nhau bằng ba phương pháp khác nhau trong bài viết này. Chúng tôi cũng đã học cách so sánh giờ địa phương với múi giờ đã chỉ định
Mô-đun Python bao gồm hàm trả về một đối tượng datetime chứa ngày và giờ hiện tại. Bản in mặc định của đối tượng datetime trông như thế này
from datetime import datetime
my_time = datetime.now[]
print[my_time]
đầu ra mẫu
2021-10-19 08. 46. 49. 311393
Bạn cũng có thể tự xác định đối tượng
from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
đầu ra mẫu
1952-12-24 00. 00. 00
Theo mặc định, thời gian được đặt thành nửa đêm, vì chúng tôi không đưa ra thời gian trong ngày trong ví dụ trên
Các phần tử khác nhau của đối tượng datetime có thể được truy cập theo cách sau
from datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
đầu ra mẫu
Ngày. 24 tháng. 12 năm. 1952
Một thời gian trong ngày cũng có thể được chỉ định. Độ chính xác có thể khác nhau, như bạn có thể thấy bên dưới
from datetime import datetime
pv1 = datetime[2021, 6, 30, 13] # 30.6.2021 at 1PM
pv2 = datetime[2021, 6, 30, 18, 45] # 30.6.2021 at 6.45PM
So sánh thời gian và tính toán sự khác biệt giữa chúng
Các toán tử so sánh quen thuộc cũng hoạt động trên các đối tượng ngày giờ
________số 8_______
đầu ra mẫu
Trung thu đã qua
Sự khác biệt giữa hai đối tượng ngày giờ có thể được tính toán đơn giản bằng toán tử trừ
from datetime import datetime
time_now = datetime.now[]
midsummer = datetime[2021, 6, 26]
difference = midsummer - time_now
print["Midsummer is", difference.days, "days away"]
đầu ra mẫu
Mùa hè còn -116 ngày nữa
NB. kết quả của phép trừ datetime là một đối tượng. Nó kém linh hoạt hơn đối tượng
from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
0. Chẳng hạn, bạn có thể truy cập số ngày trong một đối tượng from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
2, nhưng không thể truy cập số năm, vì độ dài của một năm thay đổi. Một đối tượng from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
2 chứa các thuộc tính from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
4, from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
5 và from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
6. Các biện pháp khác có thể được thông qua dưới dạng đối số, nhưng chúng sẽ được chuyển đổi nội bộTương tự, phép cộng có sẵn giữa các đối tượng
from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
0 và from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
2. Kết quả sẽ là from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
0 được tạo ra khi số ngày [hoặc tuần, giây, v.v.] đã chỉ định được thêm vào một đối tượng from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
0from datetime import datetime, timedelta
midsummer = datetime[2021, 6, 26]
one_week = timedelta[days=7]
week_from_date = midsummer + one_week
print["A week after Midsummer it will be", week_from_date]
long_time = timedelta[weeks=32, days=15]
print["32 weeks and 15 days after Midsummer it will be", midsummer + long_time]
đầu ra mẫu
Một tuần sau Trung thu sẽ là 2021-07-03 00. 00. 00 32 tuần và 15 ngày sau giữa mùa hè sẽ là 2021-02-20 00. 00. 00
Hãy xem độ chính xác cao hơn hoạt động như thế nào
time_now = datetime.now[]
midnight = datetime[2021, 6, 30]
difference = midnight - time_now
print[f"Midnight is still {difference.seconds} seconds away"]
đầu ra mẫu
Nửa đêm vẫn còn 8188 giây nữa
Đang tải
Đang tải
Định dạng thời gian và ngày tháng
Mô-đun
from datetime import datetime
my_time = datetime[1952, 12, 24]
print[my_time]
0 chứa một phương thức tiện dụng để định dạng biểu diễn chuỗi của đối tượng ngày giờ. Ví dụ: đoạn mã sau sẽ in ngày hiện tại ở định dạng from datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
2, sau đó là ngày và giờ ở định dạng khácfrom datetime import datetime
my_time = datetime.now[]
print[my_time.strftime["%d.%m.%Y"]]
print[my_time.strftime["%d/%m/%Y %H:%M"]]
đầu ra mẫu
19. 10. 2021 19/10/2021 09. 31
Định dạng thời gian sử dụng các ký tự cụ thể để biểu thị các định dạng cụ thể. Sau đây là danh sách một vài trong số chúng [vui lòng xem Python để biết danh sách đầy đủ]
Ký hiệu Ý nghĩa
from datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
3ngày [01–31]from datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
4tháng [01–12]from datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
5năm ở định dạng 4 chữ sốfrom datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
6giờ ở định dạng 24 giờfrom datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
7phút [00–59]from datetime import datetime
my_time = datetime[1952, 12, 24]
print["Day:", my_time.day]
print["Month:", my_time.month]
print["Year:", my_time.year]
8giây [00–59]Bạn cũng có thể chỉ định dấu phân cách giữa các thành phần khác nhau, như đã thấy trong ví dụ trên
Định dạng ngày giờ cũng hoạt động theo hướng ngược lại, trong trường hợp bạn cần phân tích đối tượng ngày giờ từ một chuỗi do người dùng cung cấp. Phương pháp sẽ làm điều đó
from datetime import datetime
birthday = input["Please type in your birthday in the format dd.mm.yyyy: "]
my_time = datetime.strptime[birthday, "%d.%m.%Y"]
if my_time và == của python rất phù hợp với các đối tượng datetime