이 답변은 이외의 다른 모듈을 사용하지 않으려는 경우 유용합니다 datetime
.
datetime.utcfromtimestamp(timestamp)
순진한 datetime
객체 (인식 대상 아님)를 반환합니다 . 인식하는 것은 시간대를 인식하고 순진하지 않습니다. 시간대 간 (예 : UTC와 현지 시간 간) 변환하려는 경우 알고 있어야합니다.
시작 날짜를 인스턴스화하는 사람이 아니지만 datetime
UTC 시간 으로 순진한 객체를 만들 수있는 경우이 Python 3.x 코드를 사용하여 변환하려고 할 수 있습니다.
import datetime
d=datetime.datetime.strptime("2011-01-21 02:37:21", "%Y-%m-%d %H:%M:%S") #Get your naive datetime object
d=d.replace(tzinfo=datetime.timezone.utc) #Convert it to an aware datetime object in UTC time.
d=d.astimezone() #Convert it to your local timezone (still aware)
print(d.strftime("%d %b %Y (%I:%M:%S:%f %p) %Z")) #Print it with a directive of choice
표준 시간대가 현재 MDT 인 경우 일광 절약 시간이 MST를 인쇄하므로 위의 코드에서 작동하지 않는다고 잘못 생각하지 않도록주의하십시오. 월을 8 월로 변경하면 MDT가 인쇄됩니다.
datetime
파이썬 3.x에서도 인식 객체 를 얻는 또 다른 쉬운 방법 은 시작하도록 지정된 시간대로 객체를 만드는 것입니다. UTC를 사용한 예는 다음과 같습니다.
import datetime, sys
aware_utc_dt_obj=datetime.datetime.now(datetime.timezone.utc) #create an aware datetime object
dt_obj_local=aware_utc_dt_obj.astimezone() #convert it to local time
#The following section is just code for a directive I made that I liked.
if sys.platform=="win32":
directive="%#d %b %Y (%#I:%M:%S:%f %p) %Z"
else:
directive="%-d %b %Y (%-I:%M:%S:%f %p) %Z"
print(dt_obj_local.strftime(directive))
Python 2.x를 사용하는 경우 Python 2.x 에는 존재하지 않으므로 datetime.tzinfo
인식 datetime
객체 를 작성하는 데 도움 이되도록 서브 클래스 를 작성하고 사용해야합니다 datetime.timezone
.