프로그래밍/Python

Python-24) Python time , strftime , 날짜 구하기 , 요일 구하기

LeeSeunghyuk 2020. 12. 26. 12:39
반응형

안녕하세요. 이승혁 입니다.

 

오늘은 파이썬의 time 모듈의 localtime 객체를 사용해 날짜와 요일을 구해보는 실습을 진행하겠습니다.

 

 

※ time 

 

     파이썬의 time 모듈은 시간과 관련된 다양한 함수를 제공합니다.

     time 모듈의 localtime은 대한민국 현재 시간을 time.struc_time 형식 데이터로 리턴해줍니다.

     struc_time 형식이 가진 속성과 그에 대한 설명입니다.

 

     속성에 대한 값들은 인덱스 혹은 속성 이름으로 접근 가능합니다

인덱스 속성 이름 설명
0 tm_year 현재 년도 출력 [9999]
1 tm_mon 현재 월 출력 [1~12]
2 tm_mday 현재 날짜 [1~31]
3 tm_hour 현재 시간 [0~23]
4 tm_min 현재 분 [0~59]
5 tm_sec 현재 초 [0~61] , 61은 윤초일 때 사용합니다.
6 tm_wday 현재 요일 [0~6] , 0 : 월요일 6 : 일요일
7 tm_yday 1월 1일부터 현재까지의 날짜 수 [1~366]
8 tm_isdst 섬머타임일 경우 1, 아닐경우 0, 모를 경우 -1

 

현재 시간 정보 확인하기

import time
t=time.localtime()
print(t)
print(t.tm_year)
print(t[0])

     t 변수에 struct_time 형식 데이터를 할당합니다.

     직접 속성 명으로 접근할 수 있고 ( t.tm_year ) 인덱스를 사용( t[0] )해서 접근 할 수도 있습니다.

 

    요일을 구하려면 다음과 같이 리스트와 병행해서 사용합니다.

from time import localtime
day=['월요일','화요일','수요일','목요일','금요일','토요일','일요일']
t=localtime()
print('오늘은 %s입니다.'%day[t.tm_wday])

 

※ strㄹtime

 

     time 모듈의 strftime() 메소드는 struc_time 형식 데이터를 포맷 문자열을 사용해 특정 형식으로 표현합니다..

포맷 문자열 설명
%Y 년도를 나타냄 [9999]
%m 월을 나타냄 [01 ~ 12]
%d 일을 나타냄 [01 ~ 31]
%H 시간을 24시간 형식으로 나타냄 [00 ~ 23]
%M 분을 나타냄 [00 ~ 59]
%S 초를 나타냄 [00 ~ 59]
%x 현재 날짜를 월/일/년으로 나타냄 [00/00/00]
%X 현재 시간을 시:분:초로 나타냄 [00:00:00]

 

실습 예제 코드입니다.

import time
t=time.localtime()
print(time.strftime('%Y-%m-%d',t))
print(time.strftime('%H',t))
print(time.strftime('%x',t))
print(time.strftime('%X',t))

 

※ 활용 예제 로그 파일 만들기

  

     위의 모듈을 사용해서 로그 파일을 만들 수 있습니다

from time import localtime,strftime

logfile='test.log'

def write_log(logfile,log):
    t=localtime()
    time_stamp = strftime('%Y-%m-%d %X\t',t)
    log=time_stamp + log + '\n'
    
    with open('d:\\'+logfile,'a') as f:
        f.write(log)
        
write_log(logfile,'첫 번째 문장')
time.sleep(10)
write_log(logfile,'두 번째 문장')
time.sleep(15)
write_log(logfile,'세 번째 문장')

     

     t 변수에 localtime의 struc_time 형식의 데이터를 할당합니다

     time_stamp 변수에는 strftime을 사용해 년 - 월 - 일  시:분:초 형식으로 t 데이터를 할당합니다.

     최종적으로 기록될 log 변수는 time_stamp + 기록할 내용 + 행 바꿈 을 저장합니다.

     

     함수를 호출해서 '첫 번째 문장'을 기록하고,

     time.sleep(10)을 이용해 10초를 보냅니다.

     그 후 다시 함수를 호출하고, time.sleep하고, 마지막 함수를 호출합니다.

     정상적으로 로그가 지정한 위치에 작성되었습니다.

 

오늘은 파이썬으로 현재 시각 정보를 구하고, 이를 포맷 문자열을 통해 특정 형식으로 구할 수 있다는 것을 알았습니다.

또한 이를 활용해 시간별 기록을 남기는 로그까지 만들어 보았습니다.

 

읽어주셔서 감사합니다.

반응형