0
votes

Vérification si deux objets DateTime sont les mêmes

import datetime

time = datetime.time(21) 

while True:
    print(datetime.datetime.now())
    if datetime.datetime.now() == time:
        break
I am trying to set a specific time to run a function in my program. Unfortunately, the loop did not exit at 2100hrs as expected. Why is this so?

3 commentaires

Est-ce comment je vous ai dit de comparer un objet ?! Stackoverflow.com/a/54590788/476


Comparaison temps avec DateTime , est comme chèque si 21:00:00 est égal à 2019-02-08 18:07: 53.449365 . Évidemment, ça ne va pas casser


Le titre de la question n'est pas vraiment précis. Vous demandez comment comparer deux heures et non des objets DateTime . Mieux le modifier pour obtenir des réponses pertinentes


3 Réponses :


-1
votes

Si vous voulez simplement comparer les dates, xxx

ou, évidemment, xxx

si vous voulez vérifier qu'ils sont la même date.

La documentation est généralement utile. C'est également généralement le premier résultat de Google pour Python Thing_i_have_a_Question_about. Sauf si votre question concerne une fonction / module nommée «serpent».

Fondamentalement, le module DateTime a trois types pour stocker un point à temps:
  • date pour l'année, mois, jour du mois

  • temps pendant des heures, minutes, secondes, microsecondes, info de fuseau horaire

  • DateTime combine la date et l'heure. Il a la date des procédés () et l'heure () obtenir les objets de date et d'heure correspondants, et il y a une pratique pratique Combinez la fonction pour combiner la date et l'heure dans une date d'heure.


0 commentaires

0
votes
if datetime.datetime.now().hour == set_dt.hour:
    break

0 commentaires

3
votes

On dirait que vous voulez juste comparer l'heure: xxx

Si vous avez vraiment besoin d'écrire cela plutôt que d'utiliser un planificateur de système intégré comme Cron .


2 commentaires

bonne réponse. Vous pouvez le simplifier un peu plus que l'attribut heure d'un objet DateTime est juste un int. Donc, pas besoin de créer la variable Time . Si l'état devient maintenant si DateTime.dateTime.now (). heure == 21


@Arranduff vous avez raison. Je garde la réponse aussi près que possible de l'original et laissez optimiser jusqu'à l'OP.