datetime
날짜에서 밀리 초 단위 의 문자열을 원합니다 . 이 코드는 저에게 일반적이며 코드를 줄이는 방법을 배우고 싶습니다.
from datetime import datetime
timeformatted= str(datetime.utcnow())
semiformatted= timeformatted.replace("-","")
almostformatted= semiformatted.replace(":","")
formatted=almostformatted.replace(".","")
withspacegoaway=formatted.replace(" ","")
formattedstripped=withspacegoaway.strip()
print formattedstripped
답변
밀리 초 (초 뒤에 소수점 이하 3 자리)로 날짜 문자열을 얻으려면 다음을 사용하십시오.
from datetime import datetime
print datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
>>>> OUTPUT >>>>
2020-05-04 10:18:32.926
참고 : Python3의 print
경우 괄호가 필요합니다.
print(datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3])
답변
Python 3.6에서는 다음을 사용할 수 있습니다.
from datetime import datetime
datetime.utcnow().isoformat(sep=' ', timespec='milliseconds')
산출:
'2019-05-10 09:08:53.155'
자세한 내용은 여기 : https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformat
답변
print datetime.utcnow().strftime('%Y%m%d%H%M%S%f')
http://docs.python.org/library/datetime.html#strftime-strptime-behavior
답변
@Cabbi는 일부 시스템에서 마이크로 초 형식 %f
이 제공 할 수 있는 문제를 제기 했으므로 "0"
마지막 세 문자 만 잘라내는 것은 이식성이 없습니다.
다음 코드는 밀리 초로 타임 스탬프의 형식을 신중하게 지정합니다.
from datetime import datetime
(dt, micro) = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f').split('.')
dt = "%s.%03d" % (dt, int(micro) / 1000)
print dt
출력 예 :
2016-02-26 04:37:53.133
OP가 원하는 정확한 결과를 얻으려면 문장 부호 문자를 제거해야합니다.
from datetime import datetime
(dt, micro) = datetime.utcnow().strftime('%Y%m%d%H%M%S.%f').split('.')
dt = "%s%03d" % (dt, int(micro) / 1000)
print dt
출력 예 :
20160226043839901
답변
아마 이것처럼 :
import datetime
now = datetime.datetime.now()
now.strftime('%Y/%m/%d %H:%M:%S.%f')[:-3]
# [:-3] => Removing the 3 last characters as %f is for microsecs.
답변
나는 당신이 datetime.datetime.strftime ()보다 빠른 것을 찾고 있고 본질적으로 utc 타임 스탬프에서 알파가 아닌 문자를 제거한다는 것을 의미한다고 가정합니다.
접근 방식이 약간 빠르며 문자열을 슬라이싱하면 속도를 높일 수 있다고 생각합니다.
>>> import timeit
>>> t=timeit.Timer('datetime.utcnow().strftime("%Y%m%d%H%M%S%f")','''
... from datetime import datetime''')
>>> t.timeit(number=10000000)
116.15451288223267
>>> def replaceutc(s):
... return s\
... .replace('-','') \
... .replace(':','') \
... .replace('.','') \
... .replace(' ','') \
... .strip()
...
>>> t=timeit.Timer('replaceutc(str(datetime.datetime.utcnow()))','''
... from __main__ import replaceutc
... import datetime''')
>>> t.timeit(number=10000000)
77.96774983406067
>>> def sliceutc(s):
... return s[:4] + s[5:7] + s[8:10] + s[11:13] + s[14:16] + s[17:19] + s[20:]
...
>>> t=timeit.Timer('sliceutc(str(datetime.utcnow()))','''
... from __main__ import sliceutc
... from datetime import datetime''')
>>> t.timeit(number=10000000)
62.378515005111694
답변
from datetime import datetime
from time import clock
t = datetime.utcnow()
print 't == %s %s\n\n' % (t,type(t))
n = 100000
te = clock()
for i in xrange(1):
t_stripped = t.strftime('%Y%m%d%H%M%S%f')
print clock()-te
print t_stripped," t.strftime('%Y%m%d%H%M%S%f')"
print
te = clock()
for i in xrange(1):
t_stripped = str(t).replace('-','').replace(':','').replace('.','').replace(' ','')
print clock()-te
print t_stripped," str(t).replace('-','').replace(':','').replace('.','').replace(' ','')"
print
te = clock()
for i in xrange(n):
t_stripped = str(t).translate(None,' -:.')
print clock()-te
print t_stripped," str(t).translate(None,' -:.')"
print
te = clock()
for i in xrange(n):
s = str(t)
t_stripped = s[:4] + s[5:7] + s[8:10] + s[11:13] + s[14:16] + s[17:19] + s[20:]
print clock()-te
print t_stripped," s[:4] + s[5:7] + s[8:10] + s[11:13] + s[14:16] + s[17:19] + s[20:] "
결과
t == 2011-09-28 21:31:45.562000 <type 'datetime.datetime'>
3.33410112179
20110928212155046000 t.strftime('%Y%m%d%H%M%S%f')
1.17067364707
20110928212130453000 str(t).replace('-','').replace(':','').replace('.','').replace(' ','')
0.658806915404
20110928212130453000 str(t).translate(None,' -:.')
0.645189262881
20110928212130453000 s[:4] + s[5:7] + s[8:10] + s[11:13] + s[14:16] + s[17:19] + s[20:]
의 사용 (번역) 과 슬라이스 같은 시간에 메소드 실행이
) (번역 장점이 선물 한 줄에 사용할 수있을
첫 번째 시간을 기준으로 시간 비교 :
1.000 * t.strftime ( ‘% Y % m % d % H % M % S % f’)
0.351 * str (t) .replace ( ‘-‘, ”). replace ( ‘:’, ”). replace ( ‘.’, ”). replace ( ”, ”)
0.198 * str (t). 번역 (없음, ‘-:.’)
0.194 * s [: 4] + s [5 : 7] + s [8:10] + s [11:13] + s [14:16] + s [17:19] + s [20 :]
