파이썬은 여러 가지 방법으로 날짜와 시간을 처리할 수 있습니다. 시간 및 달력 모듈은 날짜와 시간을 처리하는데 매우 유용합니다.
시간 간격은 초 단위의 부동 소수점 숫자인데 특정 시간은 1970 년 1 월 1 일 오전 12시 (epoch) 이후 초 단위로 표시됩니다. Python에는 시간에 대한 작업과 표현 간의 변환을 위한 함수를 제공하는 시간 모듈이 있습니다. time.time () 함수는 1970 년 1 월 1 일 오전 12시부터 현재 시스템 시간을 ticks 단위로 반환합니다.
import time; # This is required to include time module.
ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks
날짜 계산은 tick 을 사용하면 쉽게 계산 할 수 있습니다. 그러나 신기원(epoch) 이전의 날짜는 이 형식으로 표현 될 수 없습니다. 먼 미래의 날짜도 이런 방식으로 표현될 수 없습니다. 컷오프 포인트는 2038년 어떤 시점의 유닉스와 윈도우를 위한 것입니다.
또한 많은 파이썬의 시간 함수는 시간을 9 개의 숫자로 된 튜플 시퀀스로 처리합니다.
Index | Field | Values |
---|---|---|
0 | 4-digit year | 2008 |
1 | Month | 1 to 12 |
2 | Day | 1 to 31 |
3 | Hour | 0 to 23 |
4 | Minute | 0 to 59 |
5 | Second | 0 to 61 (60 or 61 are leap-seconds) |
6 | Day of Week | 0 to 6 (0 is Monday) |
7 | Day of year | 1 to 366 (Julian day) |
8 | Daylight savings | -1, 0, 1, -1 means library determines DST |
위의 튜플은 C언어의 struct_time 구조체와 같습니다. 이 구조체에는 다음과 같은 특성이 있습니다.
Index | Attributes | Values |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 to 12 |
2 | tm_mday | 1 to 31 |
3 | tm_hour | 0 to 23 |
4 | tm_min | 0 to 59 |
5 | tm_sec | 0 to 61 (60 or 61 are leap-seconds) |
6 | tm_wday | 0 to 6 (0 is Monday) |
7 | tm_yday | 1 to 366 (Julian day) |
8 | tm_isdst | -1, 0, 1, -1 means library determines DST |
time.time() 함수에서 구한 부동 소수점 tick 값을 튜플로 변환한 후 시간을 초 단위로 변환하려면 9 개의 항목이 모두 포함 된 시간-튜플을 변환하는 함수 localtime을 사용하면 됩니다
import time #time module을 위해 필요한 모듈.
ticks = time.time()
print("1970년 1월 1일 오전 12시 이후의 Tick 숫자:", ticks)
localtime = time.localtime(time.time())
print("Local 현재 시간 :", localtime)
localtime = time.asctime(time.localtime(time.time()))
print("Local 현재 시간 :", localtime)
위의 코드를 실행 하면 다음과 같은 결과를 얻을 수 있습니다.
1970년 1월 1일 오전 12시 이후의 Tick 숫자: 1552554699.0884836
Local 현재 시간 : time.struct_time(tm_year=2019, tm_mon=3, tm_mday=14, tm_hour=18, tm_min=11, tm_sec=39, tm_wday=3, tm_yday=73, tm_isdst=0)
Local 현재 시간 : Thu Mar 14 18:16:04 2019
요구 사항에 따라 언제든지 형식을 지정할 수 있지만 읽을 수 있는 형식으로 시간을 가져 오는 간단한 방법은 asctime() 함수를 사용하는 것입니다.
import time;
localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime
캘린더 모듈은 연간 및 월간 캘린더로 표시하는있는 다양한 방법을 제공합니다.
import calendar
cal = calendar.month(2019, 1)
print(cal)
March 2019
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Python에서 제공하는 시간에 대한 작업과 표현 간의 변환을 위한 함수를 제공하는 time 모듈이 있습니다. 다음은 사용 가능한 모든 time method 와 attribute 목록입니다.
time.altzone
time.asctime([tupletime])
time.clock( )
time.ctime([secs])
time.gmtime([secs])
time.localtime([secs])
time.mktime(tupletime)
time.sleep(secs)
time.strftime(fmt[,tupletime])
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
time.time( )
time.tzset()
time.timezone
time.tzname
캘린더 모듈은 주어진 달 또는 연도의 텍스트 달력을 인쇄하는 기능을 포함하여 달력 관련 기능을 제공합니다. 기본적으로 캘린더는 월요일을 첫 번째 요일로, 일요일을 마지막 요일로 사용합니다. 이를 변경하려면 calendar.setfirstweekday() 함수를 사용하면 됩니다.
다음은 캘린더 모듈에서 사용할 수 있는 함수 목록입니다.
calendar.calendar(year,w=2,l=1,c=6)
calendar.firstweekday( )
calendar.isleap(year)
calendar.leapdays(y1,y2)
calendar.month(year,month,w=2,l=1)
calendar.monthcalendar(year,month)
calendar.monthrange(year,month)
calendar.prcal(year,w=2,l=1,c=6)
calendar.prmonth(year,month,w=2,l=1)
calendar.setfirstweekday(weekday)
calendar.timegm(tupletime)
calendar.weekday(year,month,day)