Akashic Records

시계열 데이터 다루기-datetime 본문

Python for Beginners

시계열 데이터 다루기-datetime

Andrew's Akashic Records 2024. 8. 19. 17:13
728x90

Here is a simple image illustrating the concept of data analysis in an office setting, featuring a computer monitor with statistical graphs and a few office items. The scene is designed to reflect a serene and analytical workspace. You can view the image above.

 

파이썬의 datetime 모듈은 날짜와 시간을 처리하는 데 사용됩니다. 이 모듈은 날짜, 시간, 타임스탬프, 시간대 정보를 다루는 다양한 클래스를 제공합니다.

1. datetime.date

날짜를 연, 월, 일로 표현합니다. 이 클래스는 그레고리안 캘린더를 기반으로 날짜를 저장하고 조작할 수 있게 도와줍니다.

import datetime

# 특정 날짜 생성
d = datetime.date(2024, 8, 19)
print(d)  # 2024-08-19

2. datetime.time

하루의 시간을 시, 분, 초, 마이크로초로 표현합니다. 시간대 정보를 포함할 수도 있습니다.

# 특정 시간 생성
t = datetime.time(12, 30, 45, 123456)
print(t)  # 12:30:45.123456

3. datetime.datetime

날짜와 시간을 동시에 표현합니다. 가장 많이 사용되는 클래스 중 하나로, 날짜와 시간 관련 작업을 통합적으로 처리할 수 있습니다.

# 특정 날짜와 시간 생성
dt = datetime.datetime(2024, 8, 19, 12, 30, 45, 123456)
print(dt)  # 2024-08-19 12:30:45.123456

4. datetime.timedelta

두 날짜 또는 시간 사이의 차이를 일, 초, 마이크로초 단위로 표현합니다. timedelta 객체는 날짜나 시간을 쉽게 조정할 수 있도록 도와줍니다.

# 하루를 나타내는 timedelta 생성
delta = datetime.timedelta(days=1)
print(delta)  # 1 day, 0:00:00

# timedelta를 이용한 날짜 계산
tomorrow = d + delta
print(tomorrow)  # 2024-08-20

5. datetime.tzinfo

시간대 정보를 제공하는 추상 기반 클래스입니다. 이를 구현하는 구체적인 클래스를 사용하여 날짜와 시간에 시간대를 지정할 수 있습니다. 파이썬에서 직접 사용하기 보다는 pytzdateutil 같은 라이브러리를 통해 사용합니다.

from pytz import timezone

# 시간대를 포함한 datetime 생성
ny_time = datetime.datetime(2024, 8, 19, 12, 30, tzinfo=timezone('America/New_York'))
print(ny_time)  # 2024-08-19 12:30:00-04:00

 

datetime 모듈은 효율적인 날짜 및 시간 처리를 위한 강력한 기능을 제공하며, 일상적인 개발 작업뿐만 아니라 복잡한 시간 관리가 필요한 애플리케이션에서도 중요한 역할을 합니다.

 

파이썬의 datetime 모듈을 사용하여 문자열을 datetime 객체로 변환하려면, strptime 메소드를 사용합니다. 이 메소드는 문자열과 해당 문자열의 날짜/시간 형식을 나타내는 포맷 코드를 인자로 받습니다. 여기서 중요한 것은 문자열의 형식과 strptime에 제공되는 포맷 코드가 일치해야 한다는 점입니다.

strptime 메소드 사용법

from datetime import datetime

# 문자열
date_string = "19/08/2024 14:30"

# 문자열을 datetime 객체로 변환
# %d는 일, %m은 월, %Y는 네 자리 연도, %H는 시간(24시간제), %M은 분을 나타냅니다.
dt = datetime.strptime(date_string, "%d/%m/%Y %H:%M")

print(dt)  # 2024-08-19 14:30:00

주요 포맷 코드

  • %Y: 4자리 연도 (예: 2024)
  • %y: 2자리 연도 (예: 24)
  • %m: 2자리 월 (01~12)
  • %d: 2자리 일 (01~31)
  • %H: 시간 (00~23)
  • %I: 시간 (01~12)
  • %M: 분 (00~59)
  • %S: 초 (00~59)
  • %f: 마이크로초 (000000~999999)
  • %p: AM/PM 지시자
  • %A: 요일의 전체 이름 (예: Monday)
  • %a: 요일의 약어 (예: Mon)
  • %B: 월의 전체 이름 (예: January)
  • %b: 월의 약어 (예: Jan)

이 메소드는 다양한 날짜 및 시간 형식을 처리할 수 있어, 외부 시스템이나 파일로부터 읽은 날짜/시간 데이터를 파이썬에서 처리할 수 있도록 변환하는 데 유용합니다. 포맷 코드를 적절히 조합하여 거의 모든 형태의 날짜 및 시간 문자열을 datetime 객체로 변환할 수 있습니다.

728x90
Comments