Base/Python

[Python] 파이썬 기초 6 - Date type에 대한 정의와 기본적인 함수 사용법

반응형

#date type

날짜와 시간을 나타내는 자료형이다. 기본적으로 제공해주진 않지만 자주 쓰는 자료형이다.

 

datatime 패키지에서는 날짜와 시간을 함께 저장하는 datetime 클래스, 날짜만 저장하는 date 클래스, 시간만 저장하는 time 클래스, 시간 구간 정보를 저장하는 timedelta 클래스 등을 제공한다.

datetime.datetime.strptime() 클래스 메서드를 사용할 때는 문자열에 맞는 형식 문자열을 사용자가 제공해야 한다.

 

from datetime import date, datetime

today = date.today()
print('today - ', today, type(today)) # today - 2020-08-11 <class 'datetime.date'>
print("년도 : {}, 월 : {} , 일 : {}".format(today.year, today.month, today.day)) # 년도 : 2020, 월 : 8 , 일 : 11


# 날짜 및 시간

# week, days, hours, minutes, seconds
# years, moths는 사용할 수 없다.
# days = timedelta(year=-2) - 이건 안된다.

my_datetime = datetime.today()
print(my_datetime) # 2020-08-11 11:17:13.380420
print("시 : {}, 분 : {} , 초 : {}".format(my_datetime.hour, my_datetime.minute,
my_datetime.second)) # 시 : 11, 분 : 19 , 초 : 54

from datetime import date, datetime, timedelta
from dateutil.relativedelta import relativedelta

today = date.today()
days = timedelta(days=-1)
print(days) # -1 day, 0:00:00
print("하루 전 날짜 : {}".format(today + days)) # 하루 전 날짜 : 2020-08-10
days = relativedelta(months=-2)
print("두달 전 날짜 : {}".format(today + days)) # 두달 전 날짜 : 2020-06-11




# 특정 날짜 객체를 생성

dateutil.parser - datetime.datetime 클래스 객체를 만들어 준다.

from dateutil.parser import parse

myDay = parse("2020-08-11")
print(myDay) # 2020-08-11 00:00:00
myDay = datetime(2020, 8, 11)
print(myDay) # 2020-08-11 00:00:00



# strftime() - 날짜를 문자열 형태로 포맷 지정

today = datetime.today()
print("{}".format(today.strftime("%m-%d-%y"))) # 08-11-20
print("{}".format(today.strftime("%m-%d-%Y"))) # 08-11-2020

 


# strptime() - 문자열 -> 날짜

str = "2020,08,11-13:14:20"
my_str = datetime.strptime(str,'%Y,%m,%d-%H:%M:%S')
print(type(my_str)) # <class 'datetime.datetime'>
print(my_str) # 2020-08-11 13:14:20
반응형