[PYTHON] 파이썬으로 UUID v1에서 시간 추출하기
PYTHON파이썬으로 UUID v1에서 시간 추출하기
내 프로그램에서 무작위로 생성되는 일부 UUID가 있지만 테스트 목적으로 생성 된 UUID의 타임 스탬프를 추출 할 수 있기를 원합니다. 필드 접근자를 사용하면 타임 스탬프의 여러 부분을 얻을 수 있지만 조합하는 방법에 대해서는 알지 못합니다.
해결법
-
==============================
1./usr/lib/python2.6/uuid.py를 보면 알 수 있습니다.
/usr/lib/python2.6/uuid.py를 보면 알 수 있습니다.
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
time.time ()에 대한 방정식을 풀면
time.time()-like quantity = ((timestamp - 0x01b21dd213814000L)*100/1e9)
그래서 사용 :
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)
그러면 datetime은 uuid.uuid1에 의해 생성 된 UUID와 연관됩니다.
-
==============================
2.다음 정의를 직접 따르는 간단한 수식을 사용할 수 있습니다.
다음 정의를 직접 따르는 간단한 수식을 사용할 수 있습니다.
>>> 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)
-
==============================
3.또는 TimeUUID 라이브러리를 사용하여 잘못 계산하지 않았 음을 알 수 있습니다.
또는 TimeUUID 라이브러리를 사용하여 잘못 계산하지 않았 음을 알 수 있습니다.
예
import uuid import time_uuid my_uuid = uuid.UUID('{12345678-1234-5678-1234-567812345678}') ts = time_uuid.TimeUUID(bytes=my_uuid.bytes).get_timestamp()
-
==============================
4.내가 카산드라를 설치했기 때문에 이것을 카산드라와 함께 사용하면 나는 cassandra.util에서 datetime_from_uuid1을 사용할 수 있었다.
내가 카산드라를 설치했기 때문에 이것을 카산드라와 함께 사용하면 나는 cassandra.util에서 datetime_from_uuid1을 사용할 수 있었다.
>>> 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)
from https://stackoverflow.com/questions/3795554/extract-the-time-from-a-uuid-v1-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Python과 OpenCV를 사용하여 붉은 색 찾기 (0) | 2018.11.02 |
---|---|
[PYTHON] Python으로 구동되는 PhantomJS / Selenium의 CSS / 기타 리소스 다운로드 방지 (0) | 2018.11.02 |
[PYTHON] 파이썬 : __getattr __ ()을 구현하는 방법? (0) | 2018.11.02 |
[PYTHON] 판다 열 순서를 재 배열하는 방법? (0) | 2018.11.02 |
[PYTHON] matplotlib - 이미지를 변수에 저장 (0) | 2018.11.02 |