time.struct_time 객체를 date time 객체로 변환하기


제가 쓰는 코드에서 첫 번째 라이브러리는 time.struct_time을, 두 번째 라이브러리는 datetime를 인자로 받습니다. time.struct_time 객체를 datetime 객체로 바꾸려면 어떻게 해야 되나요?

  • 2016년 01월 27일에 작성됨

조회수 211


1 답변


좋아요
0
싫어요
채택취소하기
  1. time.mktime()으로 time tuple을 초 단위로 바꾼 후(임시)
  2. 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
  • 2016년 01월 27일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close