[PYTHON] 파이썬 : 초를 hh로 변환 : mm : ss [duplicate]
PYTHON파이썬 : 초를 hh로 변환 : mm : ss [duplicate]
int (초 수)를 다음 형식으로 변환하는 방법을 알려주십시오. mm : ss 또는 hh : mm : ss?
파이썬 코드 (그리고 가능한 경우 장고 템플릿?)로이 작업을 수행해야합니다.
대단히 감사합니다 ;-)
해결법
-
==============================
1.나는 많은 대답들 중 어떤 것도 내가 "그것을 할 수있는 확실한 방법"(그리고 나는 심지어 네덜란드 인이 아니라고 생각한다)을 제공한다고 믿을 수 없다 ... -) - 24 시간 분량의 초 (86399 초, 구체적으로) :
나는 많은 대답들 중 어떤 것도 내가 "그것을 할 수있는 확실한 방법"(그리고 나는 심지어 네덜란드 인이 아니라고 생각한다)을 제공한다고 믿을 수 없다 ... -) - 24 시간 분량의 초 (86399 초, 구체적으로) :
>>> import time >>> time.strftime('%H:%M:%S', time.gmtime(12345)) '03:25:45'
Django 템플릿을 더 복잡하게 만드는 것은 시간 필터가 펑키 한 시간 형식 구문 (PHP에서 영감을 얻었습니다.)을 지원하고 datetime 모듈과 pytz와 같은 시간대 구현이 필요하기 때문에 데이터를 준비하는 것입니다. 예 :
>>> from django import template as tt >>> import pytz >>> import datetime >>> tt.Template('{{ x|time:"H:i:s" }}').render( ... tt.Context({'x': datetime.datetime.fromtimestamp(12345, pytz.utc)})) u'03:25:45'
정확한 요구에 따라 앱에서이 형식 지정 작업에 대한 맞춤 필터를 정의하는 것이 더 편리 할 수 있습니다.
-
==============================
2.
>>> a = datetime.timedelta(seconds=65) datetime.timedelta(0, 65) >>> str(a) '0:01:05'
-
==============================
3.요청 된 내용과 예제를 사용하고 그가 지정하지 않은 사례가 처리되는 방법을 보여주는 코드 :
요청 된 내용과 예제를 사용하고 그가 지정하지 않은 사례가 처리되는 방법을 보여주는 코드 :
def format_seconds_to_hhmmss(seconds): hours = seconds // (60*60) seconds %= (60*60) minutes = seconds // 60 seconds %= 60 return "%02i:%02i:%02i" % (hours, minutes, seconds) def format_seconds_to_mmss(seconds): minutes = seconds // 60 seconds %= 60 return "%02i:%02i" % (minutes, seconds) minutes = 60 hours = 60*60 assert format_seconds_to_mmss(7*minutes + 30) == "07:30" assert format_seconds_to_mmss(15*minutes + 30) == "15:30" assert format_seconds_to_mmss(1000*minutes + 30) == "1000:30" assert format_seconds_to_hhmmss(2*hours + 15*minutes + 30) == "02:15:30" assert format_seconds_to_hhmmss(11*hours + 15*minutes + 30) == "11:15:30" assert format_seconds_to_hhmmss(99*hours + 15*minutes + 30) == "99:15:30" assert format_seconds_to_hhmmss(500*hours + 15*minutes + 30) == "500:15:30"
아마도 int가 아닌 timedelta로 저장할 수 있습니다.하지만 이는 별개의 문제이며 timedelta는 실제로이 특정 작업을 더 쉽게 만듭니다.
-
==============================
4.datetime 모듈을 읽었습니까?
datetime 모듈을 읽었습니까?
편집 / 업데이트 : SilentGhost의 대답에 대한 답변이 나와 있습니다. 이 답변이 마음에 들면 +1을하십시오 (또는 대신). 여기에 Reposted :
>>> a = datetime.timedelta(seconds=65) datetime.timedelta(0, 65) >>> str(a) '0:01:05'
-
==============================
5.간단한 나누기로 초 단위로 분과 시간을 계산할 수 있습니다.
간단한 나누기로 초 단위로 분과 시간을 계산할 수 있습니다.
seconds = 12345 minutes = seconds // 60 hours = minutes // 60 print "%02d:%02d:%02d" % (hours, minutes % 60, seconds % 60) print "%02d:%02d" % (minutes, seconds % 60)
// 여기에는 비단 정수가 나옵니다.
-
==============================
6.divmod를 사용하면 정수 나누기의 다른 풍미에 면역됩니다.
divmod를 사용하면 정수 나누기의 다른 풍미에 면역됩니다.
# show time strings for 3800 seconds # easy way to get mm:ss print "%02d:%02d" % divmod(3800, 60) # easy way to get hh:mm:ss print "%02d:%02d:%02d" % \ reduce(lambda ll,b : divmod(ll[0],b) + ll[1:], [(3800,),60,60]) # function to convert floating point number of seconds to # hh:mm:ss.sss def secondsToStr(t): return "%02d:%02d:%02d.%03d" % \ reduce(lambda ll,b : divmod(ll[0],b) + ll[1:], [(t*1000,),1000,60,60]) print secondsToStr(3800.123)
인쇄물:
63:20 01:03:20 01:03:20.123
-
==============================
7.60으로 나눌 때 조심하십시오. 정수 사이의 구분은 정수를 반환합니다 -> 12/60 = 0입니다. 다음은 Python 2.6.2에서 복사하여 붙여 넣습니다.
60으로 나눌 때 조심하십시오. 정수 사이의 구분은 정수를 반환합니다 -> 12/60 = 0입니다. 다음은 Python 2.6.2에서 복사하여 붙여 넣습니다.
IDLE 2.6.2 >>> 12/60 0 >>> from __future__ import division >>> 12/60 0.20000000000000001
-
==============================
8.파이썬 사용자가 아니지만 모든 라이브러리가없는 가장 쉬운 방법은 다음과 같습니다.
파이썬 사용자가 아니지만 모든 라이브러리가없는 가장 쉬운 방법은 다음과 같습니다.
total = 3800 seconds = total % 60 total = total - seconds hours = total / 3600 total = total - (hours * 3600) mins = total / 60
업데이트 된 코드, 감사합니다 sth
-
==============================
9.파이썬이 날짜와 시간을 지원한다는 사실 외에도 (bigmattyh의 반응 참조), 몇 초에서 몇 분 또는 몇 시간을 찾는 것이 쉽습니다.
파이썬이 날짜와 시간을 지원한다는 사실 외에도 (bigmattyh의 반응 참조), 몇 초에서 몇 분 또는 몇 시간을 찾는 것이 쉽습니다.
minutes = seconds / 60 hours = minutes / 60
이제, 분 또는 초를 표시하려면 MOD를 60으로 변경하여 59보다 크지 않도록하십시오.
-
==============================
10.이 작업을 많이해야하는 경우 하루에 몇 초 동안 가능한 모든 문자열을 미리 계산할 수 있습니다.
이 작업을 많이해야하는 경우 하루에 몇 초 동안 가능한 모든 문자열을 미리 계산할 수 있습니다.
try: from itertools import product except ImportError: def product(*seqs): if len(seqs) == 2: for s1 in seqs[0]: for s2 in seqs[1]: yield (s1,s2) else: for s in seqs[0]: for p in product(*seqs[1:]): yield (s,) + p hhmmss = {} i = 0 for (h,m,s) in product(range(24),range(60),range(60)): hhmmss[i] = "%02d:%02d:%02d" % (h,m,s) i += 1
이제는 초를 형식 문자열로 변환하는 것이 빠른 사전 찾기입니다.
print hhmmss[12345]
인쇄물
'03:25:45'
from https://stackoverflow.com/questions/1384406/python-convert-seconds-to-hhmmss by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] TypeError : 예외는 구식 클래스이거나 str이 아닌 BaseException에서 파생 된 것이어야합니다. (0) | 2018.10.22 |
---|---|
[PYTHON] sys.exit (0)과 os._exit (0)의 차이점은 무엇입니까? (0) | 2018.10.22 |
[PYTHON] 예외를 발생시키지 않고 python 스택 추적을 인쇄하십시오. (0) | 2018.10.21 |
[PYTHON] "For"루프 첫 번째 반복 (0) | 2018.10.21 |
[PYTHON] Python을 사용하여 JSON 데이터를 파일로 멋지게 인쇄 (0) | 2018.10.21 |