%f를 Python에서 strftime()과 함께 사용하여 마이크로초 가져오기
저는 strftime()을 마이크로초 정밀도로 사용하려고 하는데, %f(여기에 명시)를 사용하면 가능할 것 같습니다.하지만 제가 다음 코드를 시도할 때:
import time
import strftime from time
print strftime("%H:%M:%S.%f")
...시, 분, 초는 표시되지만 %f는 %f로 출력되며 마이크로초는 표시되지 않습니다.저는 Ubuntu에서 Python 2.6.5를 실행하고 있기 때문에 괜찮을 것이고 %f가 지원되어야 합니다(제가 알기로는 2.6 이상에서 지원됩니다).
당신은 이것을 얻기 위해 datetime의 strftime 함수를 사용할 수 있습니다.문제는 시간의 strftime이 마이크로초 정보를 전달하지 않는 타임튜플을 받아들인다는 것입니다.
from datetime import datetime
datetime.now().strftime("%H:%M:%S.%f")
그 묘기를 부려야 해요!
잘못된 설명서를 보고 있습니다.time
모듈의 설명서가 다릅니다.
사용할 수 있습니다.datetime
다음과 같은 모듈:
>>> from datetime import datetime
>>>
>>> now = datetime.now()
>>> now.strftime("%H:%M:%S.%f")
'12:19:40.948000'
Python과 함께time
모듈에서는 마이크로초를 얻을 수 없습니다.%f
.
여전히 함께 가고 싶은 사람들을 위해.time
모듈만 해당, 다음은 해결 방법입니다.
now = time.time()
mlsec = repr(now).split('.')[1][:3]
print time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), time.localtime(now))
2017-01-16 16:42:34.625 EET와 같은 것을 얻어야 합니다(네, 저는 밀리초를 사용합니다).
코드를 세부적으로 분류하려면 다음 코드를 Python 콘솔에 붙여넣습니다.
import time
# Get current timestamp
now = time.time()
# Debug now
now
print now
type(now)
# Debug strf time
struct_now = time.localtime(now)
print struct_now
type(struct_now)
# Print nicely formatted date
print time.strftime("%Y-%m-%d %H:%M:%S %Z", struct_now)
# Get miliseconds
mlsec = repr(now).split('.')[1][:3]
print mlsec
# Get your required timestamp string
timestamp = time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), struct_now)
print timestamp
설명을 위해 Python 2.7.12 결과를 여기에 붙여넣습니다.
>>> import time
>>> # get current timestamp
... now = time.time()
>>> # debug now
... now
1484578293.519106
>>> print now
1484578293.52
>>> type(now)
<type 'float'>
>>> # debug strf time
... struct_now = time.localtime(now)
>>> print struct_now
time.struct_time(tm_year=2017, tm_mon=1, tm_mday=16, tm_hour=16, tm_min=51, tm_sec=33, tm_wday=0, tm_yday=16, tm_isdst=0)
>>> type(struct_now)
<type 'time.struct_time'>
>>> # print nicely formatted date
... print time.strftime("%Y-%m-%d %H:%M:%S %Z", struct_now)
2017-01-16 16:51:33 EET
>>> # get miliseconds
... mlsec = repr(now).split('.')[1][:3]
>>> print mlsec
519
>>> # get your required timestamp string
... timestamp = time.strftime("%Y-%m-%d %H:%M:%S.{} %Z".format(mlsec), struct_now)
>>> print timestamp
2017-01-16 16:51:33.519 EET
>>>
이것이 효과가 있을 것입니다.
import datetime
datetime.datetime.now().strftime("%H:%M:%S.%f")
인쇄됩니다.
HH:MM:SS.microseconds
이와 같이14:38:19.425961
또한 마이크로초 단위의 정밀도를 얻을 수 있습니다.time
모듈을 사용합니다.time()
기능.
(time.time()
epoch 이후의 시간(초)을 반환합니다.부분적인 부분은 원하는 시간(마이크로초)입니다.
>>> from time import time
>>> time()
... 1310554308.287459 # the fractional part is what you want.
# comparision with strftime -
>>> from datetime import datetime
>>> from time import time
>>> datetime.now().strftime("%f"), time()
... ('287389', 1310554310.287459)
마이크로초에 대한 %f가 작동하지 않는 경우 다음 방법을 사용하십시오.
import datetime
def getTimeStamp():
dt = datetime.datetime.now()
return dt.strftime("%Y%j%H%M%S") + str(dt.microsecond)
정수를 사용하려면 다음 코드를 사용하십시오.
import datetime
print(datetime.datetime.now().strftime("%s%f")[:13])
출력:
1545474382803
속도를 원한다면 다음을 시도해 보십시오.
def _timestamp(prec=0):
t = time.time()
s = time.strftime("%H:%M:%S", time.localtime(t))
if prec > 0:
s += ("%.9f" % (t % 1,))[1:2+prec]
return s
어디에prec
정밀도입니다. 소수점 이하의 자릿수를 지정할 수 있습니다.이 함수는 여기에 제시된 다른 솔루션과 마찬가지로 부분적으로 선행 0에 문제가 없습니다.
언급URL : https://stackoverflow.com/questions/6677332/using-f-with-strftime-in-python-to-get-microseconds
'source' 카테고리의 다른 글
require가 정의되어 있지 않습니까?노드.js (0) | 2023.07.24 |
---|---|
저장 프로시저를 사용하여 다른 MariaDB 서버에서 Mariadb의 데이터베이스 개체에 액세스 (0) | 2023.07.24 |
각 그룹의 첫 번째 행은 어떻게 선택합니까? (0) | 2023.07.24 |
누군가 SQL 쿼리를 저작권으로 보호할 수 있습니까? (0) | 2023.07.24 |
쿼리를 사용하여 VIEW ddl 가져오기 (0) | 2023.07.24 |