[Python] datetime

HOU·2022년 5월 31일
0

Python

목록 보기
3/6
post-thumbnail

날짜 다루기

날짜와 시간은 정말 프로그래밍에서 웹프로그래밍이나, 데이터분석 등등에서 많이 사용되는 거 같다. 오늘 포스팅에서는 이 날짜를 다루는 것을 해보면 좋을거 같습니다.

datetime 모듈

datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공한다. 엄청나다 쩐다!!

사용가능한 형

  • class datetime.date
    현재의 그레고리력이 언제나 적용되어왔고, 앞으로도 그럴 것이라는 가정하에 날짜를 반환. 어트리뷰트: year, month 및 day.
  • class datetime.time
    시간을 반환합니다. 하루가 정확히 24시간 60분 60초를 갖는다는 가정하에 이상적인 시간을 반환한다. 시간을 반환한다고 생각하자
  • class datetime.datetime
    datetime 을 합친 메서드
  • class datetime.timedelta
    date,time, datetime 인스턴스 간의 시간 차이를 마이크로초로 나타내는 것 시간차 계산
  • class datetime.tzinfo
    datetimetime 클래스에서 사용자가 시간 조정
  • class datetime.timezone
    UTC로 부터의 고정 오프셋을 가진다.

위에 객체들은 불변합니다.!

datetime 클래스

x = dt.datetime.now()
x

datetime.datetime(2022, 5, 31, 9, 17, 25, 187047)
현재시간을 datetime클래스 객체로 반환하고 앞에서 부터 year, month, day, hour, minute, second, milisecond로 반환한다.

x.weekend() {0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일}

1

strf 메서드

날짜와 시간 정보를 문자열로 바꿔주는 메서드이다.

날짜및 시간 지정 문자열의미
%Y앞의 빈자리를 0으로 채우는 4자리 연도 숫자
%m앞의 빈자리를 0으로 채우는 2자리 월 숫자
%d앞의 빈자리를 0으로 채우는 2자리 일 숫자
%H앞의 빈자리를 0으로 채우는 24시간 형식 2자리 시간 숫자
%M앞의 빈자리를 0으로 채우는 2자리 분 숫자
%S앞의 빈자리를 0으로 채우는 2자리 초 숫자
%A영어로 된 요일 문자열
%B영어로 된 월 문자열

포맷 관련 참고 (python document)

참고

strf 사용법

x.strftime("%A %d. %B %Y")
#결과 'Tuesday 31. May 2022'
print(x.strftime("%H시 %M분 %S초")) #15시 27분 04초

반대로 날짜와 시간 정보를 읽어서 datetime 객체로 만들수 있다.

dt.datetime.strptime("2022-05-29 15:55", "%Y-%m-%d %H:%M")
#결과 datetime.datetime(2022, 5, 29, 15, 55)

dateutil패키지

strptime 클래스 메서드를 사용할 때는 사용자가 문자열에 맞는 형식을 제공해야한다. 하지만 dateutil패키지의 parse 함수를 사용하면 자동으로 datetime클래스 객체를 만들어준다.!

from dateutil.parse import parse
parse('2022-05-16') #datetime.datetime(2022, 5, 16, 0, 0)
parse("Apr 16, 2016 04:05:32 PM") #datetime.datetime(2016, 4, 16, 16, 5, 32)
parse('6/7/2016') #datetime.datetime(2016, 6, 7, 0, 0)

날짜 연산 timedelta

날짜의 차이는 timedelta 객체로 반환한다.

dt1 = datetime.datetime(2022, 5, 20, 14)
dt2 = datetime.datetime(2022, 4, 20, 13)
td = dt1 - dt2
#datetime.timedelta(days=48, seconds=3600)

반대로 datetime클래스에 timedelta객체를 더해서 새로운 시간을 만들수 도 있다.

t = datetime.datetime(2022, 5, 31)
d = datetime.timedelta(days = 100)
t + d
#datetime.datetime(2022, 9, 8, 0, 0)

time 패키지

타임패키지는 실행을 잠시 멈추는 sleep함수를 사용한다.
sleep함수에 n이라는 인자를 주면 n초 이후에 함수를 실행한다.

import time

print(1)
time.sleep(5)
print(2) #5초 이후에 2를 출력하낟.

참조

데이터 사이언티스트 스쿨
파이선 document사이트

profile
하루 한 걸음 성장하는 개발자

0개의 댓글