반응형

유닉스 타임스탬프와 날짜 데이터 변경 예제

 

[예제 소스 코드]

import time
from datetime import datetime,timedelta

# 현재 시간(타임스탬프)
unix_timestamp = time.time()

# 유닉스 초로 변환된 현재 시간을 출력
print("현재 시간(유닉스 초):", unix_timestamp) # 1710678275.7377028



# 타임스탬프를 날짜 포맷으로 변경
datetime_obj = datetime.fromtimestamp(unix_timestamp)

# 변환된 날짜 및 시간을 출력
print("변환된 날짜 및 시간:", datetime_obj) # 2024-03-17 21:24:35.737703


# -------------------------------------------------------------------------------
# 1950년 6월 25일의 타임스탬프를 구하고,
# 타임스탬프를 이용하여 날짜 구하여 출력하기
# --------------------------------------------------------------------------------

# 1970년 1월 1일의 datetime 객체 생성
epoch = datetime(1970, 1, 1)

# 대상 날짜인 1950년 6월 25일의 datetime 객체 생성
target_date = datetime(1950, 6, 25)

# 1970년 1월 1일부터 대상 날짜까지의 시간 간격을 계산하여 초로 변환
unix_timestamp = (target_date - epoch).total_seconds()

# 변환된 유닉스 시간 출력
print("1950년 6월 25일의 유닉스 시간(초):", unix_timestamp) # -616032000.0

# 유닉스 시간을 초 단위로 변경
unix_seconds = abs(int(unix_timestamp))

# 날짜 계산
date_obj = datetime(1970, 1, 1) + timedelta(seconds=unix_seconds)

# 음수 유닉스 시간일 경우 날짜를 이전으로 이동
if unix_timestamp < 0:
    date_obj = datetime(1970, 1, 1) - timedelta(seconds=unix_seconds)

# 변환된 날짜 출력
print("변환된 날짜:", date_obj) # 1950-06-25 00:00:00

 

 

[실행 결과]

현재 시간(유닉스 초): 1710678346.9123726
변환된 날짜 및 시간: 2024-03-17 21:25:46.912373
1950년 6월 25일의 유닉스 시간(초): -616032000.0
변환된 날짜: 1950-06-25 00:00:00

반응형

+ Recent posts