Hướng dẫn compare two timestamps python - so sánh hai dấu thời gian python

Làm thế nào tôi có thể so sánh hai ngày để xem cái nào sau này, sử dụng Python?

Nội phân chính

  • Làm cách nào để so sánh hai giá trị DateTime?
  • Chúng ta có thể so sánh hai dấu thời gian trong Python không?
  • Chúng ta có thể so sánh ngày với DateTime không?
  • Làm thế nào để tôi tìm thấy sự khác biệt giữa hai lần trong Python?

Ví dụ: tôi muốn kiểm tra xem ngày hiện tại đã qua ngày cuối cùng trong danh sách này tôi đang tạo, về ngày nghỉ, để nó sẽ gửi email tự động, nói với quản trị viên cập nhật tệp Holiday.txt.

Hướng dẫn compare two timestamps python - so sánh hai dấu thời gian python

CodeForester

35K16 Huy hiệu vàng101 Huy hiệu bạc126 Huy hiệu đồng16 gold badges101 silver badges126 bronze badges

Đã hỏi ngày 15 tháng 11 năm 2011 lúc 19:58Nov 15, 2011 at 19:58

Steven Matthewssteven MatthewsSteven Matthews

8.91741 Huy hiệu vàng116 Huy hiệu bạc213 Huy hiệu Đồng41 gold badges116 silver badges213 bronze badges

7

Sử dụng phương thức datetime và toán tử < và họ hàng của nó.

>>> from datetime import datetime, timedelta
>>> past = datetime.now() - timedelta(days=1)
>>> present = datetime.now()
>>> past < present
True
>>> datetime(3000, 1, 1) < present
False
>>> present - datetime(2000, 4, 4)
datetime.timedelta(4242, 75703, 762105)

Thomas Decaux

Huy hiệu vàng 20.5K22 gold badges104 silver badges112 bronze badges

Đã trả lời ngày 15 tháng 11 năm 2011 lúc 20:02Nov 15, 2011 at 20:02

9

Sử dụng time

Giả sử bạn có những ngày ban đầu như các chuỗi như thế này:

date1 = "31/12/2015"
date2 = "01/01/2016"

Bạn có thể làm như sau:

newdate1 = time.strptime(date1, "%d/%m/%Y")
newdate2 = time.strptime(date2, "%d/%m/%Y")

Để chuyển đổi chúng thành định dạng ngày của Python. Sau đó, sự so sánh là rõ ràng:

  • date1 = "31/12/2015"
    date2 = "01/01/2016"
    
    0 sẽ trở lại
    date1 = "31/12/2015"
    date2 = "01/01/2016"
    
    1
  • date1 = "31/12/2015"
    date2 = "01/01/2016"
    
    2 sẽ trở lại
    date1 = "31/12/2015"
    date2 = "01/01/2016"
    
    3

wjandrea

24.6K8 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng8 gold badges53 silver badges73 bronze badges

Đã trả lời ngày 21 tháng 7 năm 2015 lúc 16:41Jul 21, 2015 at 16:41

1

date1 = "31/12/2015"
date2 = "01/01/2016"
4 sẽ trả lại
date1 = "31/12/2015"
date2 = "01/01/2016"
3.

date1 = "31/12/2015"
date2 = "01/01/2016"
6 sẽ trả lại
date1 = "31/12/2015"
date2 = "01/01/2016"
7.

date1 = "31/12/2015"
date2 = "01/01/2016"
8 sẽ trở lại
date1 = "31/12/2015"
date2 = "01/01/2016"
9.

Xem các tài liệu.

Đã trả lời ngày 15 tháng 11 năm 2011 lúc 20:03Nov 15, 2011 at 20:03

Daniel Nilldaniel NillDaniel Nill

5.32110 Huy hiệu vàng44 Huy hiệu bạc62 Huy hiệu Đồng10 gold badges44 silver badges62 bronze badges

1

Các câu trả lời khác sử dụng datetime và so sánh cũng chỉ hoạt động theo thời gian mà không có ngày.

Ví dụ: để kiểm tra xem ngay bây giờ nó nhiều hơn 8:00 sáng, chúng ta có thể sử dụng:

import datetime

eight_am = datetime.time( 8,0,0 ) # Time, without a date

Và sau này so sánh với:

datetime.datetime.now().time() > eight_am  

sẽ trở lại

date1 = "31/12/2015"
date2 = "01/01/2016"
3

Đã trả lời ngày 12 tháng 1 năm 2019 lúc 21:13Jan 12, 2019 at 21:13

LuisluisLuis

3.1694 Huy hiệu vàng32 Huy hiệu bạc55 Huy hiệu Đồng4 gold badges32 silver badges55 bronze badges

Với Python là ngôn ngữ dễ nhất có sẵn, thật dễ dàng để so sánh ngày trong Python các toán tử Python <,

newdate1 = time.strptime(date1, "%d/%m/%Y")
newdate2 = time.strptime(date2, "%d/%m/%Y")
3 và
newdate1 = time.strptime(date1, "%d/%m/%Y")
newdate2 = time.strptime(date2, "%d/%m/%Y")
4 phù hợp với các đối tượng DateTime. Mỗi người trong số họ có ý nghĩa riêng trong Python:

  • < có nghĩa là ngày sớm hơn ngày đầu tiên
  • newdate1 = time.strptime(date1, "%d/%m/%Y")
    newdate2 = time.strptime(date2, "%d/%m/%Y")
    
    3 có nghĩa là ngày đến sau
  • newdate1 = time.strptime(date1, "%d/%m/%Y")
    newdate2 = time.strptime(date2, "%d/%m/%Y")
    
    4 có nghĩa là ngày giống như lần đầu tiên, đối với trường hợp của bạn:
import datetime

date = datetime.datetime(2000, 1, 1) # Replace with whatever you want
now = datetime.datetime.now() # You can even find the current date and time using this expression

if date < now:
    print('past')
elif date > now:
    print('future')
else:
    print('present')
# This would print "past"

RURBAN

3,87823 Huy hiệu bạc27 Huy hiệu đồng23 silver badges27 bronze badges

Đã trả lời ngày 22 tháng 5 năm 2021 lúc 10:26May 22, 2021 at 10:26

1

Để tính toán ngày trong hai ngày khác biệt, có thể được thực hiện như dưới đây:

import datetime
import math

issuedate = datetime(2019,5,9)   #calculate the issue datetime
current_date = datetime.datetime.now() #calculate the current datetime
diff_date = current_date - issuedate #//calculate the date difference with time also
amount = fine  #you want change

if diff_date.total_seconds() > 0.0:   #its matching your condition
    days = math.ceil(diff_date.total_seconds()/86400)  #calculate days (in 
    one day 86400 seconds)
    deductable_amount = round(amount,2)*days #calclulated fine for all days

Becuase nếu một giây nhiều hơn với ngày đáo hạn thì chúng ta phải tính phí

Đã trả lời ngày 23 tháng 5 năm 2019 lúc 12:41May 23, 2019 at 12:41

2

Làm cách nào để so sánh hai giá trị DateTime?

Phương thức so sánh () trong C# được sử dụng để so sánh hai trường hợp DateTime ...

<0 − If date1 is earlier than date2..

0 - nếu ngày1 giống như ngày 2 ..

> 0 - nếu ngày1 muộn hơn ngày 2 ..

Chúng ta có thể so sánh hai dấu thời gian trong Python không?

Và, cần phải so sánh dấu thời gian để biết mục nhập mới nhất, các mục giữa hai dấu thời gian, mục cũ nhất, v.v. cho các nhiệm vụ khác nhau. So sánh giữa các đối tượng dấu thời gian của 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:>,it is required to compare timestamps to know the latest entry, entries between two timestamps, the oldest entry, etc. for various tasks. Comparison between pandas timestamp objects is carried out using simple comparison operators: >, <,==,< = , >=. The difference can be calculated using a simple '–' operator.

Chúng ta có thể so sánh ngày với DateTime không?

Khi bạn có hai đối tượng DateTime, ngày và thời gian, một trong số chúng đại diện có thể sớm hơn hoặc mới nhất so với các đối tượng khác hoặc bằng nhau. Để so sánh các đối tượng DateTime, bạn có thể sử dụng các toán tử so sánh lớn hơn, nhỏ hơn hoặc bằng. Giống như bất kỳ hoạt động so sánh nào khác, giá trị boolean được trả về.you can use comparison operators like greater than, less than or equal to. Like any other comparison operation, a boolean value is returned.

Làm thế nào để tôi tìm thấy sự khác biệt giữa hai lần trong Python?

Ví dụ, mã định dạng%H:%M:%s là hàng giờ, phút và giây. Để có được sự khác biệt giữa hai lần, trừ thời gian1 từ Time2.subtract time1 from time2.