자신에게 친절할 것 :)

Web Developing/Python

[datetime] strftime과 strptime 차이 (추가로 다른 모듈도!)

Tashapark 2024. 8. 4. 15:56
728x90
반응형

.. 이건 왜 봐도 봐도 쓰려고 하면 헷갈리는지.. 

코드잇 강의에서는 strftime만 썼어서 그런 것 같기도 하고.. 

 


 

- datetime 모듈을 이용해서 시간과 날짜를 구하고 계산도 가능함. 

- 계산에 따라서 모듈은 계속 추가됨. 

 

- strptime:  입력 받는 문자열의 날짜 datetime.strptime(String, format) 

-> 형식을 기억할 것.

from datetime import datetime

input_date = datetime.strptime(date_str, "%Y-%m-%d") #숫자를 여러 개 받으면 split해줘야함

print(f'{input_date}는 {day_type}') 
#2024-07-23 00:00:00는 Tuesday (weekday) 시간이 같이 나와

print(f"{input_date.strftime("%Y-%m-%d")}는 {day_type}")
#시간 없애려면 출력 형식 지정해줄 것. 
#2024-07-23

 

- strftime: datetime 객체.strftime(format)

from datetime import datetime

#이렇게 쓰면 객체에 참조함
day_type = f"{input_date.strftime('%A')} (weekday)" #%A 요일 나타내는 것.

 


 

+++ 이것도 헷갈리니깐... ㅎ

++ datetime 은 시간도 같이 나오지만 date 모듈은 날짜만 뜸. 

    from datetime import datetime, date
    
    # 현재 날짜와 시간
    current_datetime = datetime.now()
    print(f'날짜와 시간 {current_datetime}')

    #현재 날짜
    current_date = date.today()
    print(f'현재 날짜 {current_date}')

 

 

+++ timedelta는 시간 계산용++

from datetime import timedelt

 delta = timedelta(
        days=50,
        seconds=27,
        microseconds=10,
        milliseconds=29000,
        minutes=5,
        hours=8,
        weeks=2
    )
    #현재 날짜 시간
    now = datetime.now()
    #시간 계산
    f_date = now + delta
    print("현재 날짜  :", now)
    print("예약 시간  :", f_date)
    print(delta)
    res = datetime.strptime('31/01/22 23:59:59.999999', '%d/%m/%y %H:%M:%S.%f')
    print(res)

 

 

++++dateutil.relativedelta는 날짜 계산용+++++

from dateutil.relativedelta import relativedelta #datetime 하려면 무조건 써야 함.
    #오늘 날짜에서 종강까지 몇년 몇월 몇일 몇시간 남았을까?
    #오늘 날짜.
    today = datetime.now()

    #종강 날짜
    target_date = datetime(2025, 1,10) # 31일 이런 건 계산을 하긴 해야함.

    #날짜 차이 계산
    res = relativedelta(target_date, today)
    print(res)
    print(f'{res.months}개월  {res.days}일 , {res.hours}시간이 남았다. ')
    print(target_date-today) #이러면 다시 계산을 해줘야 함.. 171 days, 9:57:13.629289

 

++++calendar로 달력도 나와+++++

import calendar
    #2024년도 달력을 출력하자.
    print(calendar.calendar(2024))
    
    print('=====================')
    
    #2024년도 7월의 달력을 출력해줘
    print(calendar.month(2024,7))

 

 

 

 

++++++헷갈리지 말 것+++

%y : 두 자리 수의 연도 ex) 19, 20, 21

%Y : 네 자리 수의 연도 ex) 2019, 2020, 2021

%m : 0을 채운 두 자리 수의 월 ex) 01, 02 ...  11 ,12

%d : 0을 채운 두 자리 수의 일 ex) 01, 02 ...  30, 31

%I : 0을 채운 12시간제의 시간 ex) 01, 02 … 12

%H : 0을 채운 24시간제의 시간 ex) 00, 01 … 23

%M : 0을 채운 두 자리 수의 분 ex) 00, 01 ... 58, 59

%S : 0을 채운 두 자리 수의 초 ex) 00, 01 ... 58, 59

 

- 위 식별자 정리 참조

https://dev-jy.tistory.com/5

 

[Python] strftime과 strptime

Python을 사용하여 개발을 하다 보면 날짜를 다뤄야 하는 일이 정말 많다. 항상 검색하여 사용하다 한번 정리해보자!라는 생각으로 글을 써본다. 생각해보니 평소에 제일 많이 사용하는 두 함수가

dev-jy.tistory.com

 

728x90
반응형