웹사이트 검색

Python에서 시간을 분, 초로 변환


이 자습서에서는 시간에 대해 이야기합니다. 걱정하지 마세요. 이것은 지루한 역사 자습서가 아니라 초 단위 시간을 시간, 분, 초 단위로 변환하는 다양한 방법을 살펴보겠습니다.

앞으로 우리는 선호하는 형식의 시간으로 시, 분, 초 단위로 시간을 언급할 것입니다.

다음과 같이 표시됩니다.

2:46:40

'시간'을 갖고 당면한 문제에 대해 생각해 봅시다. 의심의 여지없이 파이썬에는 우리를 위해 변환을 수행하는 놀라운 모듈이 있습니다. 그러나 내장 모듈로 이동하기 전에 먼저 자체 프로그램을 작성해 보겠습니다.

시간을 시, 분, 초로 변환하는 사용자 지정 함수 만들기

자체 변환 함수를 작성하려면 먼저 문제에 대해 수학적으로 생각해야 합니다.

초를 원하는 형식으로 어떻게 변환합니까?

시간, 분, 초의 값을 가져와야 합니다.

우리는 초 단위의 시간이 하루의 총 초 수를 초과하지 않는다고 가정할 것입니다. 그렇다면 하루의 총 초 수로 나누고 나머지를 가져갑니다.

이것은 수학적으로 다음과 같이 표현됩니다.

seconds = seconds % (24 * 3600)

% 연산자는 나머지를 제공합니다.

1시간은 3600초(60*60)이고 하루는 24시간이므로 24*3600입니다.

그런 다음 계속 진행하여 초에서 시간 값을 계산할 수 있습니다.

1. 시간 값 얻기

초에서 시간 값을 얻으려면 바닥 나누기 연산자(//)를 사용합니다.

몫의 정수 부분을 반환합니다.

시간이 필요하므로 총 초 수(n)를 한 시간의 총 초 수(3600)로 나눕니다.

수학적으로 이것은 다음과 같이 표현됩니다.

hour = seconds // 3600

그런 다음 분을 계산해야 합니다.

2. 분 값 얻기

분의 값을 계산하려면 먼저 총 초 수를 3600으로 나누고 나머지를 구해야 합니다.

수학적으로 이것은 다음과 같이 표현됩니다.

 seconds = seconds % 3600

이제 위의 결과에서 분의 값을 계산하기 위해 다시 바닥 연산자를 사용합니다.

minutes = seconds // 60

1분은 60초이므로 초 값을 60으로 내립니다.

분 값을 계산한 후 원하는 형식에 대한 초 값을 계산할 수 있습니다.

3. 초 값 얻기

초 값을 얻으려면 총 초 수를 1분의 초 수(60)로 나누고 나머지를 취해야 합니다.

수학적으로 이것은 다음과 같이 수행됩니다.

 seconds = seconds % 60

이렇게 하면 선호하는 형식에 필요한 두 번째 값이 제공됩니다.

4. 완전한 코드

위의 지식을 파이썬 함수로 컴파일해 봅시다.

def convert_to_preferred_format(sec):
   sec = sec % (24 * 3600)
   hour = sec // 3600
   sec %= 3600
   min = sec // 60
   sec %= 60
   print("seconds value in hours:",hour)
   print("seconds value in minutes:",min)
   return "%02d:%02d:%02d" % (hour, min, sec) 

n = 10000
print("Time in preferred format :-",convert(n))

출력 :

seconds value in hours: 2
seconds value in minutes: 46
Time in preferred format :- 02:46:40

시간 모듈 사용

이제 한 줄의 코드에서 초를 선호하는 형식으로 변환할 수 있는 내장 모듈을 살펴보겠습니다.

time 모듈은 Unix 시스템에서 1970년 1월 1일 00:00:00(UTC)로 시대를 정의합니다(시스템에 따라 다름). Epoch는 기본적으로 컴퓨터의 시작 시간입니다. 0일이라고 생각하세요. 시간 모듈을 사용하여 초를 변환할 때마다 이 에포크가 기준점으로 사용됩니다.

시스템에서 시대를 출력하려면 다음 코드 줄을 사용하십시오.

time.gmtime(0)

초를 원하는 형식으로 변환하려면 다음 코드 줄을 사용하십시오.

time.strftime("%H:%M:%S", time.gmtime(n))

이 줄은 시간을 'n'으로 초 단위로 취한 다음 시, 분, 초 값을 별도로 출력할 수 있습니다.

완전한 파이썬 코드는 다음과 같습니다.

import time
n=10000
time_format = time.strftime("%H:%M:%S", time.gmtime(n))
print("Time in preferred format :-",time_format)

출력 :

Time in preferred format :- 02:46:40

시간 모듈은 일, 월, 연도와 같은 일부 추가 정보를 표시하는 옵션도 제공합니다.

%a display abbreviated weekday name.
%A display full weekday name.
%b display abbreviated month name.
%B display full month name.
%c display the appropriate date and time representation.
%d display day of the month as a decimal number [01,31].

%a와 %b를 사용해 봅시다.

import time
n=100000000000
time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n))
print("Time in preferred format :-",time_format)

출력 :

Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov

Datetime 모듈 사용

DateTime 모듈 아래의 timedelta 메서드를 사용하여 초를 원하는 형식으로 변환할 수도 있습니다.

에포크 이후 경과된 일, 시, 분, 초로 시간을 표시합니다.

Datetime 모듈을 사용하여 초를 기본 형식으로 변환하는 Python 코드는 다음과 같습니다.

import datetime
n= 10000000
time_format = str(datetime.timedelta(seconds = n))
print("Time in preferred format :-",time_format)

출력 :

Time in preferred format :- 115 days, 17:46:40

결론

이 자습서에서는 초를 시, 분, 초로 변환하는 데 사용할 수 있는 세 가지 방법을 살펴보았습니다. 대체로 문제를 해결하는 두 가지 방법이 있습니다.

자신의 함수를 작성하거나 내장 모듈을 사용하십시오. 우리는 우리 자신의 함수를 작성하는 것으로 시작한 다음 시간과 DateTime 모듈을 살펴보았습니다.