두 부분이 있습니다 :
- 유닉스 타임 스탬프 ( "epoch 이후의 초")를 현지 시간으로 변환
- 현지 시간을 원하는 형식으로 표시하십시오.
과거에 현지 시간대가 다른 utc 오프셋을 가지고 있고 파이썬이 tz 데이터베이스에 액세스 할 수없는 경우에도 작동하는 현지 시간을 얻는 휴대용 방법은 pytz
시간대 를 사용하는 것입니다 .
#!/usr/bin/env python
from datetime import datetime
import tzlocal # $ pip install tzlocal
unix_timestamp = float("1284101485")
local_timezone = tzlocal.get_localzone() # get pytz timezone
local_time = datetime.fromtimestamp(unix_timestamp, local_timezone)
이를 표시하기 위해 시스템에서 지원하는 모든 시간 형식을 사용할 수 있습니다. 예 :
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
print(local_time.strftime("%B %d %Y")) # print date in your format
현지 시간이 필요하지 않은 경우 읽을 수있는 UTC 시간을 대신 가져 오십시오.
utc_time = datetime.utcfromtimestamp(unix_timestamp)
print(utc_time.strftime("%Y-%m-%d %H:%M:%S.%f+00:00 (UTC)"))
반환되는 날짜에 영향을 줄 수있는 시간대 문제에 관심 이 없거나 python이 시스템의 tz 데이터베이스에 액세스 할 수있는 경우 :
local_time = datetime.fromtimestamp(unix_timestamp)
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f"))
파이썬 3에서는 stdlib 만 사용하여 시간대 인식 날짜 시간을 얻을 수 있습니다 (파이썬이 시스템의 tz 데이터베이스에 액세스 할 수없는 경우 UTC 오프셋은 잘못 될 수 있습니다 (예 : Windows)).
#!/usr/bin/env python3
from datetime import datetime, timezone
utc_time = datetime.fromtimestamp(unix_timestamp, timezone.utc)
local_time = utc_time.astimezone()
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
time
모듈의 함수 는 해당 C API 주위의 얇은 래퍼이므로 해당 datetime
메소드 보다 이식성이 떨어질 수 있습니다. 그렇지 않으면 사용할 수도 있습니다.
#!/usr/bin/env python
import time
unix_timestamp = int("1284101485")
utc_time = time.gmtime(unix_timestamp)
local_time = time.localtime(unix_timestamp)
print(time.strftime("%Y-%m-%d %H:%M:%S", local_time))
print(time.strftime("%Y-%m-%d %H:%M:%S+00:00 (UTC)", utc_time))