[Python] 날짜, 시간 처리하기

김가람휘·2022년 3월 23일
0

Python

목록 보기
14/14

strftime

  • 시간을 문자열로 출력한다.
import datetime # 모듈이름과 파이썬 파일이름이 같으면 오류 발생

now = datetime.datetime.now()
print(now)  # 2022-03-22 11:39:59.578982

nowDate = now.strftime('%Y-%m-%d')
print(nowDate)  # 2022-03-22

nowTime = now.strftime('%H:%M:%S')
print(nowTime)  # 11:39:59

nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')
print(nowDatetime)  # 2022-03-22 11:39:59

strptime

  • 날짜, 시간형식의 문자열을 datetime으로 만들 때 사용한다.
import datetime
timeStr = '2022-03-23 09:18:33'
Thistime = datetime.datetime.strptime(timeStr, '%Y-%m-%d %H:%M:%S')

print(type(Thistime))  # <class 'datetime.datetime'>
print(Thistime)  # 2022-03-23 09:18:33

replace

  • 날짜나 시간을 변경하기 위해서 사용한다.
import datetime
myDatetime = datetime.datetime.strptime('2022-03-23 09:18:33', '%Y-%m-%d %H:%M:%S')

yourDatetime = myDatetime.replace(day=27)
print(myDatetime)  # 2022-03-23 09:18:33
print(yourDatetime)  # 2022-03-27 09:18:33

datetime.datetime.combine

  • 날짜만 관리하기 위해서 datetime.date
  • 시간만 관리하기 위해서 datetime.time
  • 이 두개를 합치기 위해서는 datetime.datetime.combine을 사용한다.
import datetime
d = datetime.date(2022, 3, 23)
t = datetime.time(9, 18, 33)

dt = datetime.datetime.combine(d, t)
print(dt)  # 2022-03-23 09:18:33

timetuple

  • datetime의 각 날짜와 시간에 관련된 항목값에 접근할 때 사용한다.
import datetime
now = datetime.datetime.now()
nowTuple = now.timetuple()
print(nowTuple)
# time.struct_time(tm_year=2022, tm_mon=3, tm_mday=23, tm_hour=10, tm_min=11, tm_sec=50, tm_wday=2, tm_yday=82, tm_isdst=-1)
print(nowTuple.tm_year)  # 2022
print(nowTuple.tm_wday)  # 2
print(nowTuple.tm_mday)  # 23

datetime.timedelta

  • 날짜, 시간 연산을 할 때 사용한다.
import datetime
now = datetime.datetime.now()
print(now)  # 2022-03-23 10:14:48.929526

tomorrow = now + datetime.timedelta(days=1)
print(tomorrow)  # 2022-03-24 10:14:48.929526

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)
  • ex) 5시간 30분 -> datetime.timedelta(hours=5, minutes=30)
  • datetime에서 datetime을 빼면 timedelta값을 얻을 수 있다.
import datetime
a_Datetime = datetime.datetime.strptime('2022-03-23 00:00:10', '%Y-%m-%d %H:%M:%S')
b_Datetime = datetime.datetime.strptime('2022-03-22 00:00:00', '%Y-%m-%d %H:%M:%S')
result = a_Datetime - b_Datetime

print(result)  # 1 day, 0:00:10
print(result.days)  # 1
print(result.seconds)  # 10

0개의 댓글