파이썬 & 오픈소스 개발 Tip과 강좌

이곳은 파이썬과 여러 오픈소스 기반 프레임워크 관련 Tip과 강좌 게시판 입니다. 관련 개발을 진행하면서 알아내신 Tip이나 강좌와 새로운 소식을 적어 주시면 다른 공부하는 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

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

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

 

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

 

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

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

 

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))

 

날짜나 시간 연산

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

이때 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))

 

연습문제

아래의 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)

No. Subject Author Date Views
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2021년 1월 업데이트) 코난(김대우) 2021.01.01 304
83 Python 초급 강좌 목차 - 8. 조건문(Condition):1 (IF-ELSE) 코난(김대우) 2021.01.01 28
82 Python 초급 강좌 목차 - 7. 에러 핸들링(Error Handling) file 코난(김대우) 2021.01.01 32
» Python 초급 강좌 목차 - 6. 날짜와 시간 데이터 처리 코난(김대우) 2021.01.01 36
80 Python 초급 강좌 목차 - 5. 숫자(Numeric) 데이터 처리 코난(김대우) 2021.01.01 22
79 Python 초급 강좌 목차 - 4. 문자열(String) 데이터 처리 코난(김대우) 2021.01.01 35
78 Python 초급 강좌 목차 - 3. 주석(Comments) 코난(김대우) 2021.01.01 29
77 Python 초급 강좌 목차 - 2. Print 구문 file 코난(김대우) 2021.01.01 47
76 Python 초급 강좌 목차 - 1. Python 개발 환경 구성 file 코난(김대우) 2021.01.01 123
75 Python 초급 강좌 목차 - 0. Python 소개 file 코난(김대우) 2021.01.01 132
74 오픈소스 개발도구 - vscode 설치 (WSL 설치 포함) file 코난(김대우) 2020.12.20 66
73 지금 시작하는 개발자를 위한, 무료 Python 강좌 Top 5! file 코난(김대우) 2020.12.19 64
72 installshield 와 entityframwork 우와앙 2014.03.28 10663
71 Visual Studio Video 비디오 컨퍼런스 규니규니 2013.03.08 12791
70 Visual Studio 2012 신제품 발표회.(09/25 - 롯데호텔 잠실 3층) 쓸만한게없네(윤선식) 2012.09.24 12746
69 SqlBulkCopy 성능비교 지현명 2012.09.13 19235
68 Visual Studio 2012의 ALM(Application Life-cycle Management) 자료 [1] 코난(김대우) 2012.09.04 16511
67 기초T4Template - 간단예제와 MVC Scaffold 주석추가하기 [5] 한머리 2012.04.17 16424
66 기초 T4 template 강좌 - 자동 코딩 생성 프로그래밍 [3] 한머리 2012.04.10 18508
65 쓰레드 풀 함써보자! (쓰레드 1000마리용 쓰레드풀 만들기) Jerry 2012.03.27 27122
64 쓰레드 풀(Thread Pool) 함써보자!! [2] Jerry 2012.03.23 30283





XE Login