1. 날짜, 시간관련 모듈
페이지 정보
작성자 관리자 댓글 0건 조회 4,542회 작성일 19-04-19 10:44본문
1. 날짜, 시간관련 모듈
파이썬에서 날짜와 시간을 다루는 방법을 알아보자.
지금 현재의 날짜와 시간을 문자열로 출력하려면 strftime 메서드를 이용하면 된다.
import datetime
now = datetime.datetime.now()
print(now) # 2019-04-19 12:11:32.669083
nowDate = now.strftime('%Y-%m-%d')
print(nowDate) # 2019-04-19
nowTime = now.strftime('%H:%M:%S')
print(nowTime) # 12:11:32
nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')
print(nowDatetime) # 2019-04-19 12:11:32
날찌, 시간형식의 문자열을 datetime으로 만들려면 strptime을 이용하자.
import datetime
myDatetimeStr = '2019-04-15 12:23:38'
myDatetime = datetime.datetime.strptime(myDatetimeStr, '%Y-%m-%d %H:%M:%S')
print(type(myDatetime)) # [class 'datetime.datetime']
print(myDatetime) # 2019-04-15 12:23:38
날짜나 시간을 변경하기 위해서는 replace 메서드를 사용하면 된다.
import datetime
myDatetime = datetime.datetime.strptime('2019-04-15 12:23:38', '%Y-%m-%d %H:%M:%S')
print(myDatetime) # 2019-04-15 12:23:38
yourDatetime = myDatetime.replace(day=16)
print(myDatetime) # 2019-04-15 12:23:38
print(yourDatetime) # 2019-04-16 12:23:38
날짜만을 관리하기 위해서는 datetime.date를, 시간만을 관리하기 위해서는 datetime.time을 이용하면 된다. datetime.date와 datetime.time을 합치기 위해서는 datetime.datetime.combine을 이용하자.
import datetime
d = datetime.date(2015, 4, 15)
t = datetime.time(12, 23, 38)
dt = datetime.datetime.combine(d, t)
print(dt) # 2019-04-15 12:23:38
datetime의 각 날짜와 시간에 관련된 항목값에 접근하려면 timetuple 메서드를 사용하면 된다.
import datetime
now = datetime.datetime.now()
nowTuple = now.timetuple()
print(nowTuple) # time.struct_time(tm_year=2015, tm_mon=4, tm_mday=19, tm_hour=13, tm_min=21, tm_sec=40, tm_wday=6, tm_yday=109, tm_isdst=-1)
print(nowTuple.tm_year) # 2015
날짜, 시간 연산을 해보자. datetime에 하루(1day)를 더하고 싶다면 datetime.timedelta를 이용하자.
import datetime
now = datetime.datetime.now()
print(now) # 2019-04-19 12:40:00.320686
tomorrow = now + datetime.timedelta(days=1)
print(tomorrow) # 2019-04-20 12:40:00.320686
timedelta에 들어갈 수 있는 인자값은 아래와 같다.
– 1주 : datetime.timedelta(weeks=1)
– 1일 : datetime.timedelta(days=1)
– 1시간 : datetime.timedelta(hours=1)
– 1분 : datetime.timedelta(minutes=1)
– 1초 : datetime.timedelta(seconds=1)
– 1밀리초 : datetime.timedelta(milliseconds=1)
– 1마이크로초 : datetime.timedelta(microseconds=1)
timedelta로 5시간 30분을 표현하면 datetime.timedelta(hours=5, minutes=30)이라고 하면 된다. 이것을 초(second) 단위로 변경하려면 total_seconds 메서드를 호출하면 초단위로 쉽게 변경할 수 있다.
datetime에서 datetime을 빼면 timedelta 값을 얻을 수 있다.
import datetime
oneDatetime = datetime.datetime.strptime('2019-04-15 00:00:00', '%Y-%m-%d %H:%M:%S')
twoDatetime = datetime.datetime.strptime('2019-04-16 00:00:10', '%Y-%m-%d %H:%M:%S')
result = twoDatetime - oneDatetime
print(result) # 1 day, 0:00:10
print(result.days) # 1
print(result.seconds) # 10
댓글목록
등록된 댓글이 없습니다.