코딩스토리/파이썬

파이썬 코딩 - 날짜형 문자형 변환 및 시간차이 계산하기 - strftime, strptime

Tech&Fin 2021. 11. 12. 17:36
반응형

지난 포스팅에서 파이썬을 이용하여 라인 메신저로 메세지를 보내는 것에 대해서 살펴 보았는데요. 조만간 해당 내용을 이용해서 보유 종목을 모니터링 하면서 전체 자산의 상승/하락률에 대해 알림을 보내는 모니터링 프로그램을 만들어 보려고 합니다.

 

하지만 보유 조건을 만족하는 경우 메세지를 보내도록 프로그램을 하면 반복해서 계속 동일한 메세지를 보내기 때문에 한번 메세지를 보내면 일정 시간동안은 보내지 않도록 해야 합니다.

 

구현하는 방법에는 여러가지 방법이 있겠지만 저희는 메세지를 보낸 시간을 기록하여 일정 시간동안 메세지를 다시 보내지 않도록 하는 기능을 구현해 볼 예정입니다.

 

그렇게 하기 위해서는 날짜 형태를 문자 형태로 또는 반대로 변환해야 하는 경우가 생기게 되는데요. 그래서 이번 포스팅에서는 날짜/시간과 관련하여 날짜형과 문자형을 변환하는 방법과 시간 차이를 계산하는 방법에 대해서 살펴보겠습니다.

 

파이썬을 이용하여 라인 메신저로 메세지를 보내는 방법은 아래 포스팅을 참고 부탁 드립니다.

 

2021.11.10 - [코딩스토리/개발관련] - 파이썬을 이용하여 라인 라이트(Line Lite) 메신저로 메세지 발송하기

 

파이썬을 이용하여 라인 라이트(Line Lite) 메신저로 메세지 발송하기

비트코인 자동매매 프로그램을 만들다 보면 필요한 시점에 알림을 받고 싶은 경우가 있는데요. 이럴 때 라인 라이트 메신저를 이용하면 파이썬을 이용하여 메세지를 보낼 수 있습니다. 이번 시

technfin.tistory.com

 

 

목차 - 클릭하면 이동합니다.

     

    날짜형 문자형 변환 및 차이 계산하기

    날짜형을 문자형으로 변환하기 - strftime

    '날짜형 변수'.strftime('형식')

    위와 같이 날짜형 변수를 문자형으로 변환할 수 있으며 대표적인 형식은 아래와 같습니다.

    ① 년-월-일 : '%Y-%m-%d'

    ② 년-월-일 시:분:초 : '%Y-%m-%d %H:%M:%S'

     

    import datetime

    # 현재 일시 가져오기
    cur_datetime = datetime.datetime.now()

    # 날짜형
    print('날짜형:', cur_datetime)

    # 문자형으로 변환
    cur_datetime_str = cur_datetime.strftime('%Y-%m-%d %H:%M:%S')
    print('문자형:', cur_datetime_str)

     

    결과:

    날짜형: 2021-11-12 17:14:41.518782
    문자형: 2021-11-12 17:14:41

     

    문자형을 날짜형으로 변환하기 - strptime

    datetime.datetime.strptime('문자형 날짜', '형식')

    위와 같이 문자형 변수를 날짜형으로 변환할 수 있으며 대표적인 형식은 아래와 같습니다.
    ① 년-월-일 : '%Y-%m-%d'
    ② 년-월-일 시:분:초 : '%Y-%m-%d %H:%M:%S'

     

    import datetime

    # 문자형 날짜
    cur_datetime_str = '2021-11-12 17:14:41'

    # 문자형
    print('문자형:', cur_datetime_str)

    # 날짜형
    cur_datetime = datetime.datetime.strptime(cur_datetime_str, '%Y-%m-%d %H:%M:%S')
    print('날짜형:', cur_datetime)

     

    결과:

    문자형: 2021-11-12 17:14:41
    날짜형: 2021-11-12 17:14:41

     

    시간 차이 계산하기

    (날짜형1 - 날짜형2).seconds

    날짜형으로 변환하게 되면 단순히 마이너스 연산자로 빼 주면 시간 차이를 계산할 수 있습니다. 그 후에 .seconds를 이용하여 초단위 차이를 계산할 수 있습니다.

     

    # 현재 일시 가져오기
    cur_datetime = datetime.datetime.now()

    # 문자형 날짜형으로 변환
    cur_datetime_bef = datetime.datetime.strptime('2021-11-12 17:27:00', '%Y-%m-%d %H:%M:%S')

    # 날짜 확인
    print('현재일시:', cur_datetime)
    print('기준일시:', cur_datetime_bef)

    # 차이 계산
    diff = cur_datetime - cur_datetime_bef

    # 차이
    print('차이(초):', diff.seconds)

     

    결과:

    현재일시: 2021-11-12 17:30:50.443505
    기준일시: 2021-11-12 17:27:00
    초단위 차이: 230

     

    마치며

    다음에는 날짜 형태를 문자 형태로 변환해서 메세지 발송 시간으로 저장해 두었다가 다시 메세지를 보내려고 할 때 해당 문자열을 꺼내와 시간 형태로 변환하고 현재 시간이랑 계산하여 발송 주기가 지나지 않은 경우 보내지 않도록 하여 알림 메세지를 보내는 비트코인 자동매매 자산 모니터링 프로그램을 작성해 보도록 하겠습니다.

     

    블로그를 구독하시면 소식을 조금 더 빠르게 받아 보실 수 있습니다.

    반응형