Python Snippets

Python Unix 타임스탬프 스니펫

현재 Unix 시간, 타임스탬프에서 datetime 변환, UTC 처리, 밀리초, 표준 라이브러리를 사용한 포맷된 날짜 출력을 위한 Python 예제.

Current Unix timestamp (seconds)
import time
int(time.time())
Current Unix timestamp (milliseconds)
import time
int(time.time() * 1000)
datetime from timestamp (local)
import datetime
datetime.datetime.fromtimestamp(1700000000)
datetime from timestamp (UTC)
import datetime
datetime.datetime.utcfromtimestamp(1700000000)
# Python 3.2+:
datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc)
Formatted string
import datetime
dt = datetime.datetime.fromtimestamp(1700000000)
dt.strftime("%Y-%m-%d %H:%M:%S")
Timestamp from datetime
import datetime
dt = datetime.datetime(2023, 11, 15, 6, 13, 20, tzinfo=datetime.timezone.utc)
int(dt.timestamp())

Python 타임스탬프 기본

Python의 time.time()은 Unix epoch 이후의 초를 부동소수점 수로 반환합니다. 정수 Unix 초가 필요하면 int()로 감싸고, 밀리초가 필요하면 1000을 곱하세요.

시간대 인식 datetime 출력

명시적 UTC 출력에는 datetime.fromtimestamp(ts, tz=datetime.timezone.utc)를 사용하세요. 로그, API, 데이터베이스 행의 값을 생성할 때 서버의 현지 시간대에 의존하지 마세요.

Python 운영 참고 사항

Python은 naive와 시간대 인식 datetime 값을 모두 쉽게 만들 수 있으므로, 어느 것이 시스템 경계를 넘는지 의도적으로 정하세요. API, 예약 작업, 데이터베이스 쓰기에는 시간대 인식 UTC datetime을 사용하세요. 현지 시간대로의 변환은 표시, 보고서, 또는 현지 달력에 명시적으로 의존하는 비즈니스 규칙에만 적용하세요.

  • 스크립트와 명령줄 도구에서는 정수 Unix 초에 int(time.time())을 사용
  • 받는 시스템이 밀리초를 기대할 때만 int(time.time() * 1000)을 사용
  • 이식 가능한 출력에는 현지 fromtimestamp 대신 datetime.fromtimestamp(ts, tz=timezone.utc)를 사용
  • 로그나 JSON에 읽기 쉬운 UTC 값이 필요하면 .isoformat()을 사용

Python의 datetime today: datetime.today() 대 datetime.now()

흔한 Python 검색 'datetime today python', 'today timestamp python', 'datetime now python utc'는 datetime 모듈로 답할 수 있습니다. datetime.today()와 datetime.now()는 거의 동일하며, 둘 다 naive 현지 datetime을 반환합니다. 최신 코드에서는 Unix 타임스탬프로 안전하게 변환할 수 있는 시간대 인식 UTC 값을 반환하는 datetime.now(timezone.utc)를 선호하세요.

  • datetime.today() → 현지 시간대의 naive datetime(tzinfo 없음)
  • datetime.now() → tz 인자를 넘기지 않는 한 today()와 동일
  • datetime.now(timezone.utc) → 시간대 인식 UTC datetime(새 코드에 권장)
  • datetime.now(timezone.utc).timestamp() → 현재 Unix epoch 초를 float로
  • date.today() → 시간 구성요소가 없는 오늘 날짜(datetime이 아니라 date 객체)
  • int(time.time()) → 현재 Unix 초를 int로 — 가장 짧은 형태
  • time.time_ns() → 현재 epoch 나노초(Python 3.7+)

Python에서 문자열을 datetime으로, datetime을 문자열로

'string to datetime python', 'py datetime to string', 'datetime to string'을 검색하는 Python 사용자는 strptime/strftime 또는 datetime.fromisoformat()을 원합니다. ISO 8601 입력에는 fromisoformat()을 사용하세요(Python 3.7+; 3.11은 UTC 오프셋을 포함한 완전한 ISO 8601을 지원).

  • 문자열을 datetime으로(Python): datetime.fromisoformat('2024-03-15T14:30:00+00:00') — ISO 8601에 권장
  • 문자열을 datetime으로(Python, 사용자 형식): datetime.strptime('2024-03-15 14:30:00', '%Y-%m-%d %H:%M:%S')
  • Py datetime to string / datetime to string: dt.isoformat()은 '2024-03-15T14:30:00+00:00'을 반환
  • Py datetime to string(사용자 형식): dt.strftime('%Y-%m-%d %H:%M:%S')은 '2024-03-15 14:30:00'을 반환
  • ISO 8601 왕복: datetime.fromisoformat(s).isoformat() — 같은 문자열을 다시 만듦
  • Unix 타임스탬프용: dt.timestamp()(초 float); 정수 초에는 int(dt.timestamp())
  • Python convert string to date / convert string to date — ISO 8601에는 datetime.fromisoformat(s); 사용자 형식에는 datetime.strptime(s, fmt)
  • Python 날짜만 출력: date.fromisoformat('2024-03-15')은 date 객체를 반환(시간 없음)

FAQ

time.time()은 정수를 반환하나?
아니요. 초를 부동소수점 값으로 반환합니다. 정수 Unix 초에는 int()로 감싸고, 밀리초가 필요하면 반올림 전에 곱하세요.
datetime 값은 naive여야 하나, 시간대 인식이어야 하나?
API, 데이터베이스, 로그에는 시간대 인식 UTC datetime 값을 사용하세요. naive datetime 값은 시간대 의미가 암묵적이므로 시스템 경계에서는 피하는 것이 가장 좋습니다.