관리 메뉴

HAMA 블로그

파이썬 시간 함수 (time, datetime) 예제 본문

Python

파이썬 시간 함수 (time, datetime) 예제

[하마] 이승현 (wowlsh93@gmail.com) 2016. 11. 10. 21:22
# coding=utf-8
import time
import datetime

# 2017-08-30 21:21:57.860000
def getCurrentTime():
return datetime.datetime.now()

# 초를 문자열 시간으로
def getCurrentTimeBySec(s):
m = s / 60
timestr = "2016-05-19 {}:{}".format(m / 60, m%60)
print timestr
return datetime.datetime.strptime(timestr, "%Y-%m-%d %H:%M")


# 시간 차이를 문자열로 00:00:03
# tTime datetime 타입이 들어간다.
def getDiffTimeToTime(dtTime) :
return getCurrentTime() - dtTime

# 1502108747.22 같은 누적초로 리턴
def getCurrentClock() :
return time.time()

# time.struct_time(tm_year=2017, tm_mon=8, tm_mday=7, tm_hour=21, tm_min=36, tm_sec=9, tm_wday=0, tm_yday=219, tm_isdst=0)
def getlocalTime():
return time.localtime()

# 2017-08-07 같이 날짜만 문자열로 리턴
def getCurrentStrDate() :
return time.strftime("%Y-%m-%d")

# 2017-08-07 13:02:00 같이 날짜+시간을 문자열로 리턴
def getCurrentStrTime() :
return time.strftime("%Y-%m-%d %H:%M:%S")

# 2017-08-07 13:07 처럼 분까지만 리턴
def getCurrentStrMinTime() :
return time.strftime("%Y-%m-%d %H:%M" + ":00")

# 2017-08-07 13:02 처럼 현재 시간에서 5분전 시간을 문자열로 리턴
# beforeMin 에는 이전 몇 분이 들어간다. ) getCurrentStrMinTimeAgo(5)
def getCurrentStrMinTimeAgo(beforeMin) :
return (datetime.datetime.now() - datetime.timedelta(minutes=beforeMin)).strftime("%Y-%m-%d %H:%M" + ":00")

# 2017-08-07 21:32:43.407 리턴
def getCurrentStrSecTime() :
t = getCurrentClock()
tmicsec = t - int(t)
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t)) + ".{:03d}".format(int(tmicsec * 1000))

# 2017-08-07 21 시간 까지 문자열로 리턴
def getCurrentPowerAllStrTime() :
return time.strftime("%Y-%m-%d %H")

# tTime : 입력된 초
# time.localtime([secs]) 입력된 초를 변환하여, 지방표준시 기준의 struct_time 을 리턴
# time.gmtime([secs]) 입력된 초를 변환하여 , UTC 기준의 STRUCT_TIME 시퀀스 객체 리턴
def getStrTime(tTime) :
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(tTime))

# tTime 2개의 입력된 초의 차를 초로 리턴
def getDiffTime2(tTime1, tTime2) :
return tTime2 - tTime1


# 현재 초와 tTime 초의 차를 초로 리턴
def getDiffTime(tTime) :
return getCurrentClock() - tTime
# 입력받은 날짜(정수)와 현재 날짜의 날수 차이 def getDiffDay(year,month, day): input_day = datetime.date(year,month,day) today = datetime.date.today() delta = today - input_day return delta.days


# 초를 입력으로 넣은 후에 해당 초에 해당하는 지방표준시의 시퀀스중에 nIdx 번째 값을 리턴한다. 순서는 아래와 같다.
# # time.struct_time(tm_year=2017, tm_mon=8, tm_mday=7, tm_hour=21, tm_min=36, tm_sec=9, tm_wday=0, tm_yday=219, tm_isdst=0)
def getDateTimeFromIndex(tTime, nIdx) :
return time.localtime(tTime)[nIdx]

# 초를 입력으로 넣은 후에 해당 초에 해당하는 지방표준시의 시퀀스들을 리스트로 가져온다..
# # time.struct_time(tm_year=2017, tm_mon=8, tm_mday=7, tm_hour=21, tm_min=36, tm_sec=9, tm_wday=0, tm_yday=219, tm_isdst=0)
def getClockElement(tTime) :
return [
getDateTimeFromIndex(tTime, 0),
getDateTimeFromIndex(tTime, 1),
getDateTimeFromIndex(tTime, 2),
getDateTimeFromIndex(tTime, 3),
getDateTimeFromIndex(tTime, 4),
getDateTimeFromIndex(tTime, 5)
]


# datetime 객체를 입력받아서 누적초로 리턴한다. 1502109843.0
def getTimeFromDateTime(dtTime) :
return time.mktime(dtTime.timetuple()) # + dtTime.microsecond / 1E6

# , , 일 을 숫자로 입력 받아서 완성된 누적초로 리턴
def getTimeFromEachValue(nYear, nMonth, nDay) :
return getTimeFromDateTime(datetime.date(nYear, nMonth, nDay))

# 누적초를 입력 받아서
#2017-08-07 21:49:35 같은 datetime.datetime 객체 리턴
def getDateTimeFromTime(tTime) :
return datetime.datetime.fromtimestamp(time.mktime(time.localtime(tTime)))

# 시간 문자열을 입력 받아서
#2017-08-07 21:49:35 같은 datetime.datetime 객체 리턴
def getDateTimeFromString(szTime) :
return datetime.datetime.strptime(szTime, "%Y-%m-%d %H:%M:%S")


#2017-08-07 21:49:35 같은 datetime.datetime 객체에 숫자로 일수를 더한 결과를 datetime 타입으로 리턴
def addDayToDateTime(dtTime, nDay) :
return dtTime + datetime.timedelta(days=nDay)

# datetime 타입을 입력해서 누적초를 리턴
def convertDatetimeToSec(dtTime) :
return dtTime.total_seconds()


time 모듈은 unix epoch time 이후로 초 단위로 취 한 부동 소수점 숫자로 표현 됩니다. datetime 모듈은 많은 동일한 작업을 지원하면서 더 많은 객체 지향 유형 세트를 제공하며 시간대에 대한 제한된 지원도 제공합니다.


Comments