Ich habe einige UUIDs, die zufällig in meinem Programm generiert werden, aber ich möchte in der Lage sein, den Zeitstempel der generierten UUID für Testzwecke zu extrahieren. Ich habe bemerkt, dass ich mit dem fields
Accessor die verschiedenen Teile des Zeitstempels bekommen kann, aber ich habe keine Ahnung, wie man sie kombiniert.Extrahieren Sie die Zeit von einem UUID v1 in Python
Antwort
innen /usr/lib/python2.6/uuid.py Suchen Sie
def uuid1(node=None, clock_seq=None):
...
nanoseconds = int(time.time() * 1e9)
# 0x01b21dd213814000 is the number of 100-ns intervals between the
# UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00.
timestamp = int(nanoseconds/100) + 0x01b21dd213814000L
die Gleichungen für time.time() zu lösen sehen werden, werden Sie
time.time()-like quantity = ((timestamp - 0x01b21dd213814000L)*100/1e9)
erhalten so verwenden:
In [3]: import uuid
In [4]: u = uuid.uuid1()
In [58]: datetime.datetime.fromtimestamp((u.time - 0x01b21dd213814000L)*100/1e9)
Out[58]: datetime.datetime(2010, 9, 25, 17, 43, 6, 298623)
das die mit einem UUID von uuid.uuid1
erzeugten zugehörigen Datetime gibt.
Oder benutzen Sie einfach die TimeUUID library, so dass Sie wissen, dass Sie nicht die Mathematik falsch
Beispiel
import uuid
import time_uuid
my_uuid = uuid.UUID('{12345678-1234-5678-1234-567812345678}')
ts = time_uuid.TimeUUID(bytes=my_uuid.bytes).get_timestamp()
Das Quell-Repo ist https://github.com/samuraisam/time_uuid – bcattle
bekommen haben könnten Sie eine einfache Formel verwenden, die direkt from the definition folgt:
Der Zeitstempel ist ein 60-Bit-Wert. Für UUID Version 1 ist dies , dargestellt durch Coordinated Universal Time (UTC) als eine Zählung von 100- Nanosekundenintervalle seit 00: 00: 00.00, 15. Oktober 1582 (das Datum Gregorianische Reform in den christlichen Kalender).
>>> from uuid import uuid1
>>> from datetime import datetime, timedelta
>>> datetime(1582, 10, 15) + timedelta(microseconds=uuid1().time//10)
datetime.datetime(2015, 11, 13, 6, 59, 12, 109560)
Da ich Cassandra installiert und ich bin mit diesem mit Cassandra ich in der Lage war, aus der datetime_from_uuid1 verwenden cassandra.util
>>> import uuid
>>> from cassandra.util import datetime_from_uuid1
>>> foo = uuid.uuid1()
>>> dt_foo = datetime_from_uuid1(foo)
>>> dt_foo
datetime.datetime(2016, 07, 26, 8, 2, 12, 104560)
- 1. Postgresql - Sortieren nach UUID v1 Zeitstempel
- 2. So extrahieren Sie die Bewertung eines Films in imdb von einem Bildelement mit Scrapy in Python
- 3. Extrahieren Sie den nth-Schlüssel in einem Python-Wörterbuch?
- 4. Zeit von datetime extrahieren und bestimmen, ob die Zeit (nicht das Datum) in den Bereich fällt?
- 5. Extrahieren von verbundenen Objekten aus einem Bild in Python
- 6. Extrahieren Sie die Adjazenzmatrix von einem BGL Graph
- 7. R: Extrahieren Zeit von srt (Untertitel) Datei
- 8. Nummer vor einem Zeichen in einem String mit Python extrahieren
- 9. wie Ziffern von einem Schwimmer in Python extrahieren
- 10. extrahieren Zeit von Datetime mit Javascript
- 11. Uber API/v1/Schätzungen/Zeit reagiert Keine Authentifizierung bereitgestellt
- 12. Lastmodul in PowerShell v1
- 13. generieren UUID für Cassandra in Python
- 14. So extrahieren Sie Folien aus einem Video mit Python
- 15. Wie Sie die Datum-Zeit-Muster von einem DateTimeFormatter Objekt
- 16. Schreiben CBCharacteristic von UUID
- 17. Wie stellen Sie die Zeit und nur die Zeit in einem Kalender in Java ein?
- 18. So senden Sie Service-UUID
- 19. Teilen Sie eine Zeichenfolge in Python und extrahieren Sie einige Felder aus der Liste
- 20. Extrahieren von numerischen Daten Python
- 21. UUID
- 22. topojson.object in topojson V1
- 23. Wie ändere ich die Zeit in Python?
- 24. Extrahieren von Worten zwischen Begrenzungszeichen [] in Python
- 25. Entfernen Sie Zeit von Timedelta Ausgabe in Python
- 26. Machen Sie UUID kürzer (Umwandlung von Hex in ASCII)
- 27. Extrahieren Sie Argumente aus Python-Skript
- 28. Zeit in Python vergleichen
- 29. Python: Wie konvertiert man eine gültige Uuid von String zu UUID?
- 30. Extrahieren von Städtenamen aus Text mit Python
Sehen aus wie Sie mein Problem gelöst. In der Zwischenzeit musste ich meinen eigenen Konstruktor erstellen, da nur die aktuellen Zeitstempel generiert wurden und ich zufällige Zeitstempel benötigte. Danke für Ihre schnelle Antwort :-) – cdecker
interessant, UUID Epoche bezieht sich auf den Julianischen Kalender .. (Facepalm) – ezdazuzena
@ezdazuzena Eigentlich Gregorian (siehe [RFC 4122, Abschnitt 4.1.4] (https://tools.ietf.org /html/rfc4122#section-4.1.4) über die Gregorianische Reform in den christlichen Kalender). Das ist natürlich völlig willkürlich, aber auch die UNIX-Epoche. Ich fordere Sie heraus, sich für ein besseres zu entscheiden, erklären Sie, warum Ihre Entscheidung nicht nur willkürlich ist, * und * zeigen Sie die Notwendigkeit, den bestehenden Standard (und die Anzahl abhängiger und indirekt abhängiger) zu ändern. – zxq9