2023년 6월 업데이트

 

안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 초급 강좌 목차 - 6. 날짜와 시간 데이터 처리를 진행토록 하겠습니다.

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.

예를 들어, 06_datetime.py를 생성하고 코드를 실행합니다.

 

 

TL;DR

datetime 모듈은 날짜와 시간을 처리하기 위한 클래스를 제공합니다. now() 함수를 사용하여 현재 날짜와 시각을 가져올 수 있고, 날짜와 시간을 더하거나 빼는 것과 같은 작업을 timedelta를 사용하여 수행할 수 있습니다. 또한, Formatting 기능을 사용하면 특정 날짜 또는 시간 정보도 추출할 수 있습니다.
 

 

Python 초급 강좌 목차 - 6. 날짜와 시간 데이터 처리

 

Python의 datetime 모듈에는 날짜 및 시간을 처리하기 위한 여러 클래스들이 포함되어 있습니다.

우선 날짜와 시간에 대한 데이터형을 정리합니다. 

 

date와 time 데이터형

  • date: 년, 월, 일을 포함
  • time: 시, 분, 초 포함
  • datetime: 년, 월, 일, 시, 분, 초 포함
  • timedelta: 두 개의 날짜 또는 시간 사이의 기간(duration)

 

현재 날짜와 시간 처리

코드상에서 로깅을 하거나, 데이터를 저장할 때 빈번하게 현재날짜와 시각을 가져와야 합니다. 

이때 now() 함수를 이용해 정보를 가져올 수 있습니다.

# 현재 날짜와 시간을 얻으려면 datetime 라이브러리를 사용해야 합니다.
from datetime import datetime

current_date = datetime.now()
# now 함수는 현재 날짜와 시간을 datetime 객체로 반환합니다.

# datetime 객체를 다른 문자열에 연결하기 전에 문자열로 변환해야 합니다.
print('Today is: ' + str(current_date))

 

☑️ 챗GPT 활용: utc 날짜 데이터에 대해서 알려줘

 

날짜나 시간 연산

날짜나 시간 데이터에 대해 여러 날짜를 더하거나 시간을 빼는 등의 연산을 해야 할 경우가 있습니다.

이때 timedelta를 이용하여 편하게 이러한 날짜/시간 데이터 처리가 가능합니다.

# 현재 날짜와 시간을 얻으려면 datetime 라이브러리를 사용해야 합니다.
from datetime import datetime, timedelta
# now 함수는 현재 날짜와 시간을 리턴합니다.
today = datetime.now()

print('Today is: ' + str(today))
# timedelta를 사용하여 날짜에 일 또는 주를 더하거나 뺄 수 있습니다.
one_day = timedelta(days=1)
yesterday = today - one_day
print('Yesterday was: ' + str(yesterday))

one_week = timedelta(weeks=1)
last_week = today - one_week
print('Last week was: ' + str(last_week))

 

날짜나 시간 포맷(formatting) 함수

특정한 날짜나 시간 함수를 이용해 formatting이 가능합니다. 날짜의 해당 월이나 일 정보만 추출해 이를 문자열이나 다른 데이터로 처리 가능합니다.

# 현재 날짜와 시간을 얻으려면 datetime 라이브러리를 사용해야 합니다.
from datetime import datetime

# now 함수는 현재 날짜와 시간을 리턴합니다.
today = datetime.now()

# 일, 월, 년, 시, 분, 초 function 사용해 날짜의 일부만 표시할 수 있습니다.
# 이 모든 함수는 정수(integer) 값을 반환합니다.
# 다른 문자열에 연결(concat) 하기 전에 문자열로 변환해야 합니다.
print('Day: ' + str(today.day))
print('Month: ' + str(today.month))
print('Year: ' + str(today.year))

print('Hour: ' + str(today.hour))
print('Minute: ' + str(today.minute))
print('Second: ' + str(today.second))

 

 

문자열로 날짜/시간 데이터를 받을 경우 변환

가끔, 문자열로 날짜나 시간 데이터를 받을 경우가 있습니다. 이때 strptime() 함수로 문자열 데이터를 날짜/시간 데이터형으로 변환할 수 있습니다.

# datetime, timedelta 모듈을 import 합니다.
from datetime import datetime, timedelta

# 사용자에게 날짜를 입력받을 때 날짜 형식을 알려주면 좋습니다.
birthday = input('When is your birthday (dd/mm/yyyy)? ')

# 날짜가 포함된 문자열을 날짜 객체로 변환할 때 변환할 날짜 형식을 지정해야 합니다.
# 날짜가 지정된 형식이 아니면 Python은 예외를 발생시킵니다
birthday_date = datetime.strptime(birthday, '%d/%m/%Y')

print ('Birthday: ' + str(birthday_date))

# 문자열을 날짜 객체로 변환했기 때문에 timedelta와 같은 날짜 및 시간 함수를 사용할 수 있습니다.
one_day = timedelta(days=1)
birthday_eve = birthday_date - one_day
print('Day before birthday: ' + str(birthday_eve))

 

☑️ 챗GPT 활용: python의 datetime.strptime에 대해 알려줘

연습문제

아래의 comment를 살펴보고, 이를 코드로 구현하세요. 해결방안은 c9-python-getting-started/code_challenge_solution.py at master · CloudBreadPaPa/c9-python-getting-started (github.com)에서 보실 수 있습니다.

 

# 오늘의 날짜 출력
# 어제의 날짜 출력
# 사용자에게 날짜 입력 요청
# 입력받은 날짜로부터 1주 후 날짜 출력

 

수고하셨습니다. 다음 강좌에서 뵐게요.

 

참조링크

Python datetime 데이터형

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝(2021년 1월 업데이트)

c9-python-getting-started/python-for-beginners/04 - String variables at master · CloudBreadPaPa/c9-python-getting-started (github.com)

 

파이썬 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터 

파이썬-책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 34062
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 17177
98 Python 중급 강좌 - 4. 상속(Inheritance) 코난(김대우) 2021.01.03 283
97 Python 중급 강좌 - 3. 클래스(Class) 코난(김대우) 2021.01.03 327
96 Python 중급 강좌 - 2. 람다(Lamda) file 코난(김대우) 2021.01.03 461
95 Python 중급 강좌 - 1. Python 스타일 가이드: 서식(Formatting)과 린팅(Linting) file 코난(김대우) 2021.01.02 1030
94 Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패스워드) 관리 - dotenv 코난(김대우) 2021.01.02 911
93 Python 초급 강좌 목차 - 18. 데코레이터(Decorators) 코난(김대우) 2021.01.02 284
92 Python 초급 강좌 목차 - 17. JSON 데이터 처리 file 코난(김대우) 2021.01.02 757
91 Python 초급 강좌 목차 - 16. 외부 웹서비스 API 호출 file 코난(김대우) 2021.01.02 917
90 Python 초급 강좌 목차 - 15. 패키지(Package): import, pip 코난(김대우) 2021.01.02 340
89 Python 초급 강좌 목차 - 14. 함수 파라미터(Parameter) 코난(김대우) 2021.01.02 279
88 Python 초급 강좌 목차 - 13. 함수(Function) 코난(김대우) 2021.01.02 475
87 Python 초급 강좌 목차 - 12. 반복문(Loop): for, while 코난(김대우) 2021.01.02 278
86 Python 초급 강좌 목차 - 11. 컬렉션(Collection): list, array, dictionary file 코난(김대우) 2021.01.02 317
85 Python 초급 강좌 목차 - 10. 조건문(Condition):3 복잡한 조건 처리 코난(김대우) 2021.01.01 274
84 Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리 코난(김대우) 2021.01.01 317
83 Python 초급 강좌 목차 - 8. 조건문(Condition):1 (IF-ELSE) 코난(김대우) 2021.01.01 299
82 Python 초급 강좌 목차 - 7. 에러 핸들링(Error Handling) file 코난(김대우) 2021.01.01 331
» Python 초급 강좌 목차 - 6. 날짜와 시간 데이터 처리 코난(김대우) 2021.01.01 354
80 Python 초급 강좌 목차 - 5. 숫자(Numeric) 데이터 처리 코난(김대우) 2021.01.01 288
79 Python 초급 강좌 목차 - 4. 문자열(String) 데이터 처리 코난(김대우) 2021.01.01 371





XE Login