Python Timestamp in Sekunden umwandeln?

Hanibal545  01.09.2022, 00:53

Was möchtest du denn für eine Ausgabe?

PHLMinions 
Fragesteller
 01.09.2022, 01:45

Hey,

Ich möchte warten, mit await asyncio.sleep(), jedoch kann ich dies nur mit den entsprechen Sekunden, dies ist aber nicht mit diesem (Beispiel) Timestamp möglich "1661989260".

Hanibal545  01.09.2022, 14:17

Kannst du vielleicht ein wenig Kontext geben (für was brauchst du den timestamp etc.)

PHLMinions 
Fragesteller
 01.09.2022, 15:22

Ich möchte mit diesem Timestamp genau bis zu dieser Zeit die im Timestamp angegeben ist warten. Der Timestamp ist in meiner Datenbank gespeichert, für Bot Ausfälle.

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

EIn Timestamp liegt in Sekunden vor.

Falls Du etwas anderes machen möchtest, dann spezifiziere was als Eingabe vorliegt bzw. lese die Dokumentation des datetime Moduls.


PHLMinions 
Fragesteller
 01.09.2022, 01:43

Hey,

Naja ein Timestamp sieht ja so aus 1661989260 (Beispiel) und ich möchte mit diesem Timestamp dann warten, wenn ich jetzt so warte await asyncio.sleep(1661989260) wartet er ja "1661989260" Sekunden, wie kann ich das in Sekunden umwandeln?

Liebe Grüße

0
PHLMinions 
Fragesteller
 01.09.2022, 01:48
@PHLMinions

Ich bin's nochmal, ich habe es erst jetzt verstanden, tut mir leid.

0
PHLMinions 
Fragesteller
 01.09.2022, 01:55

Aber das geht doch trotzdem nicht, oder? Da er ja trotzdem diese 1661989260 Sekunden wartet?

0
KarlRanseierIII  01.09.2022, 02:04
@PHLMinions

sleep() erwartet eien Zeitdifferenz, also asyncio.sleep(100) wäre ein Schlaf von 100 Sekunden.

Wenn Du bis zu einem bestimmten Zeitpunkt schlafen willst, dann wandelst Du den Zeitpunkt in einen timestamp und ziehst now()) ab.

0
PHLMinions 
Fragesteller
 01.09.2022, 02:16
@KarlRanseierIII

Ja, ich habe aber bereits ein Timestamp in meiner Datenbank, dies ist die Zeit in der ich „schlafen“ möchte, wie kann ich dies dann so umwandeln, dass ich genau nach dieser Zeit, was im Timestamp angegeben ist warte?

0
PHLMinions 
Fragesteller
 01.09.2022, 02:35
@KarlRanseierIII

Ich versuche es mal zu erklären.
Also..

  1. Ich habe einen Timestamp in meiner Datenbank..
  2. Ich möchte nun mit diesem Timestamp arbeiten..
  3. Ich möchte mit diesem Timestamp auf eine Interaction warten..
  4. Wenn ich asyncio.sleep(Timestamp) benutze, wartet er bsp. 167272727 Sekunden..
  5. Mein Timestamp ist jetzt z.B. auf den Monat 2.09.2022 gestellt, ich möchte nun bis dieser Zeit schlafen..
  6. Ich weiß aber nicht wie ich diesen Timestamp so umwandele das er bis Punkt 2.09.2022 schläft.

Verstehst du es jetzt?

Liebe Grüße

0
KarlRanseierIII  01.09.2022, 02:43
@PHLMinions

Das habe ich bereits geschrieben, aber exemplarisch:

>>> datetime.datetime(2022,9,2,19,23,11).timestamp()
1662139391.0 # Timestamp of future point in time
>>> time.time()
1661992881.2890127 # Current Timestamp
>>> datetime.datetime(2022,9,2,19,23,11).timestamp() -time.time()
146484.3851761818 #  Seconds to sleep until TS in future
0
PHLMinions 
Fragesteller
 01.09.2022, 02:47
@KarlRanseierIII

Ja, aber das wandelt sich ja nicht in Sekunden um? Stell dir mal vor, ich sage er soll 30 Sekunden warten, dann habe ich eine riesengroße Zahl, wie soll ich mit der dann 30 Sekunden warten?

0
KarlRanseierIII  01.09.2022, 02:50
@PHLMinions

Was wandelt sich nicht in Sekunden um?

Wenn Du 30s warten willst, wartest Du 30s, andernfalls bildest Du die Differenz der Zeitstempel udn das ist eben die Zahl der Sekunden, die Du bis zum gegebenen Zeitpunkt warten mußt.

0
PHLMinions 
Fragesteller
 01.09.2022, 02:52
@KarlRanseierIII

Ja aber die 30 Sekunden sind ja in ein Timestamp? Ich glaube du verstehst mich falsch..

Wie soll ich mit so einer großen Zahl warten?

0

Du könntest es einfach mit "End-Zeit" -"Jetziger Zeit" berrechnen.

Also dann z.B.:

import time

end_time = 1662213681.9932127
current_time  = time.time()
remaining_time = end_time-current_time
if remaining_time < 0:
    remaining_time = 0
print(f"Noch {remaining_time/60/60} Stunden")
asyncio.sleep(remaining_time)
Woher ich das weiß:eigene Erfahrung

Verstehe nicht ganz was du meinst.

Ein Unix timestamp ist schon in Sekunden.

Falls du das nicht meinst, welche Art von Timestamp meinst du?


PHLMinions 
Fragesteller
 01.09.2022, 01:42

Hey,

Naja ein Timestamp sieht ja so aus 1661989260 (Beispiel) und ich möchte mit diesem Timestamp dann warten, wenn ich jetzt so warte await asyncio.sleep(1661989260) wartet er ja "1661989260" Sekunden, wie kann ich das in Sekunden umwandeln?
Liebe Grüße

0
PHLMinions 
Fragesteller
 01.09.2022, 01:49
@PHLMinions

Ich bin's nochmal, ich habe es erst jetzt verstanden, tut mir leid.

0
PHLMinions 
Fragesteller
 01.09.2022, 01:54
@PHLMinions

Aber das geht doch trotzdem nicht, oder? Da er ja trotzdem diese 1661989260 Sekunden wartet?

0