[파이썬 초급] 7) 날짜 함수

날짜와 시간은 프로그래밍에서 매우 중요한 요소입니다. 파이썬은 날짜와 시간을 처리하기 위한 다양한 내장 모듈을 제공합니다. 이번 강좌에서는 파이썬에서 날짜와 시간을 다루는 방법에 대해 알아보고, 예제를 통해 실습해 보겠습니다.

  1. datetime 모듈 datetime 모듈은 날짜와 시간을 다루기 위한 클래스들을 제공합니다. 이 모듈을 사용하여 날짜와 시간을 생성하고 조작할 수 있습니다.

먼저, datetime 모듈을 임포트하고 현재 날짜와 시간을 얻어보겠습니다.

from datetime import datetime

now = datetime.now()
print(now)  # 출력: 2023-07-15 09:30:00.123456

datetime.now() 함수를 호출하면 현재 날짜와 시간을 얻을 수 있습니다. now() 함수는 datetime 객체를 반환합니다.

datetime 객체에서 날짜와 시간을 추출하려면 year, month, day, hour, minute, second 등의 속성을 사용합니다.

year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
  1. 날짜와 시간 포맷팅 datetime 객체에서 얻은 날짜와 시간을 원하는 형식으로 포맷팅할 수 있습니다. strftime() 메서드를 사용하여 포맷 문자열을 지정합니다.
formatted_date = now.strftime("%Y-%m-%d")
formatted_time = now.strftime("%H:%M:%S")
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # 출력: 2023-07-15
print(formatted_time)  # 출력: 09:30:00
print(formatted_datetime)  # 출력: 2023-07-15 09:30:00

%Y, %m, %d, %H, %M, %S와 같은 포맷 문자열을 사용하여 날짜와 시간을 포맷할 수 있습니다.

  1. timedelta timedelta는 두 날짜 또는 시간 사이의 차이를 나타내는 클래스입니다. timedelta 객체를 사용하여 날짜와 시간에 대한 산술 연산을 수행할 수 있습니다.

예를 들어, 현재 날짜에서 7일 후의 날짜를 계산해 보겠습니다.

from datetime import timedelta

future_date = now + timedelta(days=7)
print(future_date)  # 출력: 2023-07-22 09:30:00.123456

timedelta 객체에는 days, seconds, microseconds, milliseconds, minutes, hours, weeks 등의 속성이 있으며, 이를 사용하여 원하는 시간 간격을 지정할 수 있습니다.

  1. 날짜와 시간 변환 문자열로 표현된 날짜와 시간을 datetime 객체로 변환하거나, datetime 객체를 문자열로 변환하는 것도 가능합니다.
from datetime import datetime

date_str = "2023-07-15"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(parsed_date)  # 출력: 2023-07-15 00:00:00

formatted_date = parsed_date.strftime("%Y-%m-%d")
print(formatted_date)  # 출력: 2023-07-15

strptime() 함수는 문자열을 datetime 객체로 변환하고, strftime() 메서드는 datetime 객체를 문자열로 변환합니다. 포맷 문자열은 변환하려는 문자열의 형식과 일치해야 합니다.

날짜와 시간을 다루는 기능은 프로그래밍에서 매우 유용하며, 파이썬의 datetime 모듈을 사용하면 쉽고 효율적으로 날짜와 시간을 다룰 수 있습니다. 예제 코드를 통해 실습해 보면서 날짜와 시간에 대한 이해도를 높여보세요.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top