날짜와 시간은 정말 프로그래밍에서 웹프로그래밍이나, 데이터분석 등등에서 많이 사용되는 거 같다. 오늘 포스팅에서는 이 날짜를 다루는 것을 해보면 좋을거 같습니다.
datetime
모듈은 날짜와 시간을 조작하는 클래스를 제공한다. 엄청나다 쩐다!!
date
와 time
을 합친 메서드 date
,time
, datetime
인스턴스 간의 시간 차이를 마이크로초로 나타내는 것 시간차 계산datetime
과 time
클래스에서 사용자가 시간 조정위에 객체들은 불변합니다.!
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
날짜와 시간 정보를 문자열로 바꿔주는 메서드이다.
날짜및 시간 지정 문자열 | 의미 |
---|---|
%Y | 앞의 빈자리를 0으로 채우는 4자리 연도 숫자 |
%m | 앞의 빈자리를 0으로 채우는 2자리 월 숫자 |
%d | 앞의 빈자리를 0으로 채우는 2자리 일 숫자 |
%H | 앞의 빈자리를 0으로 채우는 24시간 형식 2자리 시간 숫자 |
%M | 앞의 빈자리를 0으로 채우는 2자리 분 숫자 |
%S | 앞의 빈자리를 0으로 채우는 2자리 초 숫자 |
%A | 영어로 된 요일 문자열 |
%B | 영어로 된 월 문자열 |
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
객체로 반환한다.
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)
타임패키지는 실행을 잠시 멈추는 sleep함수를 사용한다.
sleep함수에 n이라는 인자를 주면 n초 이후에 함수를 실행한다.
import time
print(1)
time.sleep(5)
print(2) #5초 이후에 2를 출력하낟.