time.struct_time 객체를 date time 객체로 변환하기
조회수 4106회
제가 쓰는 코드에서 첫 번째 라이브러리는 time.struct_time
을, 두 번째 라이브러리는 datetime
를 인자로 받습니다.
time.struct_time
객체를 datetime
객체로 바꾸려면 어떻게 해야 되나요?
1 답변
-
- time.mktime()으로 time tuple을 초 단위로 바꾼 후(임시)
- datetime.fromtimestamp()을 써서
datetime
객체를 얻음
from time import mktime, gmtime from datetime import datetime rightnow = gmtime() print("gmtime:\t\t\t\t\t\t\t\t\t", rightnow) print("mktime(mytime):\t\t\t\t\t\t\t", mktime(rightnow)) print("type(mktime(rightnow)):\t\t\t\t\t", type(mktime(rightnow))) print("datetime.fromtimestamp(mktime(rightnow)):", datetime.fromtimestamp(mktime(rightnow)))
출력 :
gmtime: time.struct_time(tm_year=2016, tm_mon=1, tm_mday=27, tm_hour=2, tm_min=56, tm_sec=4, tm_wday=2, tm_yday=27, tm_isdst=0) mktime(mytime): 1453830964.0 type(mktime(rightnow)): <class 'float'> datetime.fromtimestamp(mktime(rightnow)): 2016-01-27 02:56:04
아니면 간단하게
struct_time
을 인덱스 6까지만 slice 한 후, 바로 변환하는 방법도 있습니다.from time import localtime from datetime import datetime structTime = localtime() print("localtime()\t\t\t\t\t:", structTime) print("localtime()[:6]\t\t\t\t:", structTime[:6]) print("datetime(*structTime[:6])\t:", datetime(*structTime[:6]))
출력 :
localtime() : time.struct_time(tm_year=2016, tm_mon=1, tm_mday=27, tm_hour=12, tm_min=5, tm_sec=4, tm_wday=2, tm_yday=27, tm_isdst=0) localtime()[:6] : (2016, 1, 27, 12, 5, 4) datetime(*structTime[:6]) : 2016-01-27 12:05:04
댓글 입력