Skip to content
toylee blog
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

  • 홈
  • 컴퓨터 활용
  • 프로그래밍
    • 파이썬
    • 자바(Java)
    • Flutter
    • HTML
    • Linux
    • 워드프레스
  • 맥북
  • IT 일반
  • 블로그 소개
  • 문의하기
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

파이썬 datetime과 zoneinfo로 날짜·시간 다루기

toylee, 2026년 02월 17일2026년 08월 27일

날짜·시간 오류는 대부분 “문자열 형식”보다 시간대가 있는 값과 없는 값을 섞는 것에서 발생합니다. 서버와 API에서는 UTC 기준의 시간대 포함 datetime을 사용하고, 화면에 표시할 때 사용자의 지역 시간대로 변환하는 방식이 안전합니다.

[목차]

  • aware와 naive datetime
  • 한국 시간으로 변환하기
  • ISO 8601 문자열 파싱과 출력
  • 기간 계산
  • 실무 저장 원칙
  • 공식 참고자료
  • 관련 글

aware와 naive datetime

  • naive: 시간대 정보가 없어 어느 지역의 시각인지 스스로 설명하지 못합니다.
  • aware: tzinfo를 포함해 UTC상의 한 시점을 식별할 수 있습니다.
from datetime import UTC, datetime

now_utc = datetime.now(UTC)
print(now_utc.isoformat())

datetime.utcnow()은 naive 값을 반환하므로 새 코드에서는 datetime.now(UTC)처럼 명시적인 방식을 사용합니다.

한국 시간으로 변환하기

from datetime import UTC, datetime
from zoneinfo import ZoneInfo

seoul = ZoneInfo("Asia/Seoul")
created_at = datetime.now(UTC)
local_time = created_at.astimezone(seoul)

print(local_time.strftime("%Y-%m-%d %H:%M:%S %Z"))

ZoneInfo는 IANA 시간대 규칙을 사용하므로 일광절약시간이 있는 지역도 날짜에 맞는 오프셋을 적용합니다. Windows 등 시스템에 시간대 데이터가 없는 환경을 함께 지원한다면 프로젝트 의존성에 tzdata를 명시하는 방안을 검토합니다.

ISO 8601 문자열 파싱과 출력

from datetime import datetime

value = "2026-08-27T10:30:00+09:00"
dt = datetime.fromisoformat(value)

assert dt.tzinfo is not None
print(dt.isoformat(timespec="seconds"))

외부 입력은 형식과 시간대 포함 여부를 검증해야 합니다. 날짜만 필요한 값과 실제 시점을 나타내는 값을 같은 타입으로 저장하지 않는 것이 좋습니다.

기간 계산

from datetime import UTC, datetime, timedelta

started_at = datetime.now(UTC)
expires_at = started_at + timedelta(days=7)
remaining = expires_at - started_at

print(remaining.total_seconds())

timedelta.seconds는 전체 기간의 초가 아니라 하루를 제외한 나머지 초이므로 전체 초가 필요하면 total_seconds()를 사용합니다. 프로그램 실행 시간처럼 시스템 시각 변경의 영향을 받으면 안 되는 측정에는 time.monotonic()을 사용하세요.

실무 저장 원칙

  1. DB에는 UTC와 명확한 타입으로 저장합니다.
  2. API는 오프셋이 포함된 ISO 8601 문자열을 사용합니다.
  3. 사용자 입력의 지역 시간대는 별도 값으로 받습니다.
  4. 표시는 마지막 단계에서만 지역 시간대로 변환합니다.
  5. 일광절약시간 전환일과 월말·윤년을 테스트합니다.

공식 참고자료

  • Python datetime 문서
  • Python zoneinfo 문서
  • Python time.monotonic 문서

관련 글

  • 파이썬으로 시작하는 쉽고 재미있는 코딩
  • PostgreSQL 자동화 스크립트 작성법

내용 검토 및 업데이트: 2026년 8월 27일

파이썬 python파이썬 datetime파이썬 날짜 처리파이썬 날짜시간파이썬 시간 처리파이썬 시간계산파이썬 시간변환파이썬 타임존

글 탐색

Previous post
Next post

Related Posts

파이썬

작업표시줄 아이콘 사라짐 해결방법

2024년 08월 21일

작업표시줄의 아이콘이 사라지는 문제는 많은 사용자들에게 불편을 초래할 수 있습니다. 이 문제는 다양한 원인으로 인해 발생할 수 있으며, 해결 방법을 모르면 작업의 효율성이 크게 저하될 수 있습니다. 작업표시줄 아이콘이 사라지면 중요 알림을 놓치거나 작업에 지장을 받을 수 있습니다. 본 문서에서는 작업표시줄 아이콘이 사라졌을 때의 일반적인 원인과 이를 해결하기 위한 방법을…

Read More
파이썬

데이터시각화 PyQt 사용 방법

2023년 06월 18일

데이터 분석 및 시각화의 세계에서 인터랙티브하고 시각적으로 매력적인 데이터 표현을 생성하는 것은 통찰력을 얻고 정보를 효과적으로 전달하는 데 필수적입니다. 데이터시각화 PyQt 사용을 통한 공부 같이 시작해 볼까요?

Read More
파이썬

파이썬 주석 처리 방법 및 사용 이유

2023년 07월 01일

주석은 코딩을 함에 있어서 누구나 쉽게 이해 할 수 있도록 가이드를 준다고 생각하면 됩니다. 그러므로 주석은 코드를 작성하며 매우 중요한 역할을 합니다. 이번 글에선 파이썬 주석 처리 방법 및 사용 이유에 대해 같이 알아보도록 하겠습니다.

Read More

최신 글

  • 브라우저 캐시 삭제가 필요한 경우와 안전하게 정리하는 방법 정리
  • 맥북 발열 줄이는 기본 설정: 성능과 배터리를 지키는 실천 방법
  • 에러 로그 읽는 습관 만들기: 개발 속도를 높이는 실전 분석 요령
  • HTML 링크 태그 접근성 체크리스트: 누구나 이용하기 쉬운 웹사이트 만드는 방법
  • 워드프레스 글 발행 체크리스트: 놓치기 쉬운 7가지 필수 점검 항목

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 9월
  • 2026년 8월
  • 2026년 2월
  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • Flutter
  • HTML
  • IT 일반
  • Linux
  • 맥북
  • 워드프레스
  • 자바(Java)
  • 컴퓨터 활용
  • 파이썬
  • 프로그래밍

사이트 안내

  • 블로그 소개
  • 문의하기
  • 개인정보 처리방침
©2026 toylee blog | WordPress Theme by SuperbThemes