[PYTHON] 초를시, 분, 초로 변환하는 방법은 무엇입니까?
PYTHON초를시, 분, 초로 변환하는 방법은 무엇입니까?
몇 초 안에 정보를 반환하는 함수가 있지만 그 정보를 몇 시간 (분 : 초)으로 저장해야합니다.
파이썬에서 초를이 형식으로 변환하는 쉬운 방법이 있습니까?
해결법
-
==============================
1.또는 다음을 수행 할 수 있습니다.
또는 다음을 수행 할 수 있습니다.
>>> import datetime >>> str(datetime.timedelta(seconds=666)) '0:11:06'
-
==============================
2.divmod () 함수를 사용하면 몫과 나머지를 생성하는 단일 부분 만 수행하므로 두 번의 수학 연산만으로 매우 신속하게 결과를 얻을 수 있습니다.
divmod () 함수를 사용하면 몫과 나머지를 생성하는 단일 부분 만 수행하므로 두 번의 수학 연산만으로 매우 신속하게 결과를 얻을 수 있습니다.
m, s = divmod(seconds, 60) h, m = divmod(m, 60) print "%d:%02d:%02d" % (h, m, s)
-
==============================
3.나는 쉬운 방법으로 이름을 붙일 수는 없지만 적어도 구문을 기억할 수는 없다.하지만 time.strftime을 사용하는 것이 가능하다.
나는 쉬운 방법으로 이름을 붙일 수는 없지만 적어도 구문을 기억할 수는 없다.하지만 time.strftime을 사용하는 것이 가능하다.
>>> import time >>> time.strftime("%H:%M:%S", time.gmtime(666)) '00:11:06'
gmtime은 초를 strftime ()에 필요한 특수 튜플 형식으로 변환하는 데 사용됩니다.
-
==============================
4.
>>> import datetime >>> "{:0>8}".format(datetime.timedelta(seconds=66)) >>> "{:0>8}".format(str(datetime.timedelta(seconds=66))) # Python3 >>> '00:01:06' # good
과:
>>> "{:0>8}".format(datetime.timedelta(seconds=666777)) >>> "{:0>8}".format(str(datetime.timedelta(seconds=666777))) # Python3 >>> '7 days, 17:12:57' # nice
without : '0> 8':
>>> "{}".format(datetime.timedelta(seconds=66)) >>> '0:01:06' # not HH:MM:SS
과:
>>> import time >>> time.strftime("%H:%M:%S", time.gmtime(666777)) >>> '17:12:57' # wrong
그러나:
>>> "{:0>8}".format(datetime.timedelta(seconds=620000)) >>> "{:0>8}".format(str(datetime.timedelta(seconds=620000))) # Python3 >>> '7 days, 4:13:20' # bummer
-
==============================
5.이것은 내 속임수입니다.
이것은 내 속임수입니다.
import humanfriendly humanfriendly.format_timespan(secondsPassed)
방문: https://humanfriendly.readthedocs.io/en/latest/#humanfriendly.format_timespan 더 많은 정보를 위해서.
-
==============================
6.datetime.time 값을 가져와야하는 경우이 트릭을 사용할 수 있습니다.
datetime.time 값을 가져와야하는 경우이 트릭을 사용할 수 있습니다.
my_time = (datetime(1970,1,1) + timedelta(seconds=my_seconds)).time()
timedelta를 시간에 추가 할 수는 없지만 datetime에 추가 할 수 있습니다.
UPD : 동일한 기술의 또 다른 변형 :
my_time = (datetime.fromordinal(1) + timedelta(seconds=my_seconds)).time()
1 대신에 0보다 큰 숫자를 사용할 수 있습니다. 여기서 datetime.fromordinal은 항상 시간 구성 요소가 0 인 datetime 객체를 반환합니다.
-
==============================
7.이것이 내가 얻은 방법이다.
이것이 내가 얻은 방법이다.
def sec2time(sec, n_msec=3): ''' Convert seconds to 'D days, HH:MM:SS.FFF' ''' if hasattr(sec,'__len__'): return [sec2time(s) for s in sec] m, s = divmod(sec, 60) h, m = divmod(m, 60) d, h = divmod(h, 24) if n_msec > 0: pattern = '%%02d:%%02d:%%0%d.%df' % (n_msec+3, n_msec) else: pattern = r'%02d:%02d:%02d' if d == 0: return pattern % (h, m, s) return ('%d days, ' + pattern) % (d, h, m, s)
몇 가지 예 :
$ sec2time(10, 3) Out: '00:00:10.000' $ sec2time(1234567.8910, 0) Out: '14 days, 06:56:07' $ sec2time(1234567.8910, 4) Out: '14 days, 06:56:07.8910' $ sec2time([12, 345678.9], 3) Out: ['00:00:12.000', '4 days, 00:01:18.900']
from https://stackoverflow.com/questions/775049/how-do-i-convert-seconds-to-hours-minutes-and-seconds by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 어떻게 print () 문을 behave (BDD)에서 볼 수 있습니까? (0) | 2018.10.30 |
---|---|
[PYTHON] 판다 DataFrame을 행 단위로 정규화하기 (0) | 2018.10.30 |
[PYTHON] 파이썬에서 "a is b"와 "id (a) == id (b)"의 차이점은 무엇입니까? (0) | 2018.10.30 |
[PYTHON] 파일의 탭을 기준으로 문자열 분할 (0) | 2018.10.30 |
[PYTHON] python : NameError : 전역 이름 '...'이 정의되지 않았습니다 [중복] (0) | 2018.10.30 |