파이썬 datetime, timestamp 내용 정리하기
파이썬에는 날짜 관련된 다양한 타입이 존재한다.
정말 사용할 때마다 헷갈리는데 이번에 확실하게 익혀보자.
- python 날짜 관련 타입들
- datetime에 대해서
- timestamp에 대해서
- 타입 맞추기
1. python 날짜 관련 타입들
파이썬에서 날짜 타입은 크게 3가지로 생각하면 된다.
{date} {datetime} {Timestamp}
# 1.datetime
import datetime
datetime.date(2022,1,1)
datetime.datetime(2022,1,1,21,19,24)
# 2.pandas
import pandas as pd
pd.Timestamp('2022-01-01T21:19:34')
{date} {datetime}은 datetime 모듈에서 만들어지고
{Timestamp}는 pandas 모듈에서 만들어진다
2. datetime에 대해서
datetime 모듈에서는 date와 datetime을 만들 수 있는데
이름 처럼 시간대가 있냐 없냐의 차이다
input parameter를 잘 확인해본다
int 값을 넣어줘야 한다
datetime.date(year, month, day)
datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
import datetime
datetime.date(2022,1,1)
datetime.datetime(2022,1,1,21,19,24)
datetime.date(2022, 1, 1) -> {date} 타입
datetime.datetime(2022, 1, 1, 21, 19, 24) -> {datetime} 타입
3. timestamp에 대해서
Timestamp는 pandas 모듈에서 생성
str 값을 넣어줘야 한다
import pandas as pd
pd.Timestamp('2022-01-01T21:19:34')
Timestamp('2022-01-01 21:19:34') -> {Timestamp} 타입
pd.Timestamp('2022-01-01T21:19:34') == datetime.datetime(2022,1,1,21,19,24)
False
datetime.date(2022,1,1) == datetime.datetime(2022,1,1)
False
타입이 다르면 같은 시간이라도 다르게 인식한다
반드시 타입을 맞춰준다
4. 타입 맞추기
1) str로 바꾸기
{date} {datetime} {Timestamp} 타입 모두
isoformat() / strftime() 둘 중 함수 아무거나 사용하면 된다
# 1.isoformat()
datetime.date(2022,1,1).isoformat()
datetime.datetime(2022,1,1,21,19,24).isoformat()
pd.Timestamp('2022-01-01T21:19:34').isoformat()
# 2.strftime() / 반드시 형식을 써줘야 함
datetime.date(2022,1,1).strftime('%Y-%m-%d')
datetime.datetime(2022,1,1,21,19,24).strftime('%Y-%m-%d')
pd.Timestamp('2022-01-01T21:19:34').strftime('%Y-%m-%d')
# 1.isoformat()
'2022-01-01'
'2022-01-01T21:19:24'
'2022-01-01T21:19:34'
# 2.strftime()
'2022-01-01'
'2022-01-01'
'2022-01-01'
2) Timestamp로 바꾸기
{date} {datetime} {Timestamp} 타입 모두
pd.to_datetime() 함수를 사용하면 된다
d1 = datetime.date(2022,1,1)
d2 = datetime.datetime(2022,1,1,21,19,24)
d3 = pd.Timestamp('2022-01-01T21:19:34')
pd.to_datetime(d1)
pd.to_datetime(d2)
pd.to_datetime(d3)
Timestamp('2022-01-01 00:00:00')
Timestamp('2022-01-01 21:19:24')
Timestamp('2022-01-01 21:19:24')
3) datetime으로 바꾸기
{date} {datetime} {Timestamp} 타입 모두
datetime.datetime.strptime() 함수를 사용하면 된다 (import datetime으로 한 경우)
datetime.strptime() 함수를 사용하면 된다 (from datetime import datetime으로 한 경우)
d1 = datetime.date(2022,1,1)
d2 = datetime.datetime(2022,1,1,21,19,24)
d3 = pd.Timestamp('2022-01-01T21:19:34')
datetime.datetime.strptime(d1.isoformat(), '%Y-%m-%d')
datetime.datetime.strptime(d3.isoformat(), '%Y-%m-%dT%H:%M:%S')
datetime.datetime(2022, 1, 1, 0, 0)
datetime.datetime(2022, 1, 1, 21, 19, 34)
반드시 입력값 형태와 같은 format을 입력해야 하고 str타입으로 넣어줘야 함
4) date으로 바꾸기
{date} {datetime} {Timestamp} 타입 모두
datetime에서 date 함수를 붙이면 된다
d1 = datetime.date(2022,1,1)
d2 = datetime.datetime(2022,1,1,21,19,24)
d3 = pd.Timestamp('2022-01-01T21:19:34')
datetime.datetime.strptime(d1.isoformat(), '%Y-%m-%d').date()
d2.date()
datetime.datetime.strptime(d3.isoformat(), '%Y-%m-%dT%H:%M:%S').date()
datetime.date(2022, 1, 1)
datetime.date(2022, 1, 1)
datetime.date(2022, 1, 1)
'PYTHON > python 기초' 카테고리의 다른 글
[python] with as 사용법 (0) | 2021.02.09 |
---|---|
[python] 매직메소드 __init__ (0) | 2021.02.09 |
[python] 다른 폴더 파일 import (1) | 2021.01.31 |
[python] 주피터 노트북 사용법 및 단축키 (0) | 2020.05.19 |
댓글