So sánh thời gian Python

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]
0

from 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ác

from 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

Làm thế nào để so sánh thời gian trong gấu trúc?

Việc so sánh giữa các đối tượng dấu thời gian gấu trúc được thực hiện bằng cách sử dụng các toán tử so sánh đơn giản. >, . Sự khác biệt có thể được tính bằng toán tử '–' đơn giản. Thời gian nhất định có thể được chuyển đổi thành dấu thời gian của gấu trúc bằng gấu trúc. Phương thức dấu thời gian[].

Làm cách nào để so sánh thời gian UTC trong Python?

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

Chủ Đề