티스토리 뷰
-. datetime모듈내의 클래스
클래스 | 내용 |
datetime.date | 일반적으로 사용되는 그레고리안 달력(Gregorian Calendar)의 년, 월, 일을 나타냄 |
datetime.time | 시간을 시, 분, 초, 마이크로초, 시간대(Time zone)로 나타냄 |
datetime.datetime | date클래스와 time클래스의 조합으로 년, 월, 일, 시, 분, 초, 마이크로초, 시간대 정보를 나타냄 |
datetime.timedelta | 두 날짜 혹은 시간 사이의 기간을 표현 |
>> datetime.date클래스 <<
datetime.date클래스는 일반적으로 사용되는 년, 월, 일로 표기되는 그레고리안 달력의 날짜를 표현함
생성자 : datetime.date(year, month, day)
숫자로 년, 월, 일을 입력받아서 date객체를 생성
- year : 1 ~ 9999
- month : 1 ~ 12
- day : 1 ~ 해당월의 마지막 날짜
ex) 객체생성
>>> import datetime >>> D=datetime.date(2013,2,18) >>> D datetime.date(2013, 2, 18) >>> print(D) 2013-02-18 >>> D=datetime.date(2013,2,31) #해당월의 최대일수를 넘으면 ValueError발생 Traceback (most recent call last): File "<pyshell#194>", line 1, in <module> D=datetime.date(2013,2,31) ValueError: day is out of range for month |
-. datetime.date클래스 속성
속성 | 내용 |
year | 년(읽기전용) |
month | 월(읽기전용) |
day | 일(읽기전용) |
max | date객체의 최댓값 (9999,12,31) |
min | date객체의 최솟값 (1,1,1) |
ex)
>>> import datetime >>> D=datetime.date(2013,2,18) >>> D.year #년 2013 >>> D.month #월 2 >>> D.day #일 18 >>> D.max #date객체의 최댓값 datetime.date(9999, 12, 31) >>> D.min #date객체의 최솟값 datetime.date(1, 1, 1) |
-. datetime.date객체를 반환하는 클래스메서드
>fromtimestamp(timestamp)
타임스탬프값을 인자로 받아서 date객체를 반환
>>> import datetime,time >>> datetime.date.fromtimestamp(time.time()) datetime.date(2013, 3, 29) |
>fromordinal(ordinal)
1년 1월 1일 이후로 누적된 날짜로부터 date객체를 반환
>>> import datetime >>> datetime.date.fromordinal(100) datetime.date(1, 4, 10) |
> today()
현재 시스템의 오늘 날짜 date객체를 반환
>>> import datetime >>> datetime.date.today() datetime.date(2013, 3, 29) |
-. datetime.date객체를 이용하여 다른 값/형식으로 반환하는 메서드
>replace(year, month, day)
입력된 인자로 변경된 date객체를 반환, 원본객체는 변경되지 않음
변경하려는 속성만 명시적으로 전달할수 있음
>>> import datetime >>> a=datetime.date.today() >>> a datetime.date(2013, 3, 29) >>> b=a.replace(day=1) #a객체에서 day만 변경 >>> a datetime.date(2013, 3, 29) #원본은 변경되지 않음 >>> b datetime.date(2013, 3, 1) |
>timetuple()
date객체의 값을 struct_time시퀸스객체로 반환
>>> import datetime >>> a=datetime.date.today() >>> a.timetuple() time.struct_time(tm_year=2013, tm_mon=3, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=88, tm_isdst=-1) |
>toordinal()
1년 1월 1일 이후로 date객체까지 누적된 날자를 반환
>>> import datetime >>> a=datetime.date.today() >>> a.toordinal() 734956 |
>weekday()
요일을 정수로 변환하여 반환
월:0, 화:1, 수:2, 목:3, 금:4, 토:5, 일:6
>>> import datetime >>> a=datetime.date.today() >>> a.weekday() 4 |
>isoformat()
date객체의 정보를 "YYYY-MM-DD"형태의 문자열로 반환
>>> import datetime >>> D=datetime.date.today() >>> D.isoformat() '2013-03-29' |
>ctime()
date객체의 정보를 'Sun Mar 15 00:00:00 2009'형태의 문자열로 반환
시, 분, 초에 대한 정보는 '0'으로 초기화 됨
>>> import datetime >>> D=datetime.date.today() >>> D.ctime() 'Fri Mar 29 00:00:00 2013' |
>strftime(format)
지정된 포맷에 맞춰 datetime.date객체의 정보를 문자열로 반환
지시자 | 내용 |
%y | 연도를 축약하여 표시('13') |
%Y | 연도를 축약하지 않고 표시('2013') |
%b | 축약된 월이름('Mar') |
%B | 축약되지 않은 월 이름('March') |
%m | 숫자로 표현한 월(01~12) |
%d | 일(01~31) |
%H | 24시를 기준 시(00~23) |
%I(아이) | 12시를 기준 시(01~12) |
%M | 분(00~59) |
%S | 초(00~61) |
%p | 오전(AM)/오후(PM) 표시 ('AM') |
%a | 축약된 요일 이름('Fri') |
%A | 축약되지 않은 요일이름('Friday') |
%w | 요일을 숫자로 표시 (일:0, 월:1, 화:2, 수:3, 목:4, 금:5, 토:6) |
%j | 1월 1일부터 누적된 날짜(001~366) |
microsecond = %f
time모듈의 strftime메서드와 형식지시자가 같음
>>> import datetime >>> D=datetime.date(2013,2,18) >>> D.strftime('%Y %m %d') '2013 02 18' >>> D.strftime('%y/%m/%d %H:%M:%S') #시, 분, 초에 대한 정보는 없기때문에 '0'으로 반환됨 '13/02/18 00:00:00' |
>> datetime.time클래스 <<
time클래스는 시, 분, 초와 같은 시간을 표현함
생성자 : datetime.time([hour[, minute[, second[, microsecond[, tzinfo]]]]])
숫자로 시, 분, 초, 마이크로초, 시간대정보(Time Zone)을 입력받아서 time객체를 생성하며, 각 인자는 생략하거나 명시적으로 지정할수 있다.
- hour : 0 ~ 23
- minute : 0 ~ 59
- second : 0 ~ 59
- microsecond : 0 ~ 999999
ex) 객체생성
>>> import datetime >>> datetime.time(23) #시간만 입력 datetime.time(23, 0) >>> datetime.time(23,15,45,2341) #시, 분, 초 마이크로초 입력 datetime.time(23, 15, 45, 2341) >>> datetime.time(hour=23,second=5) #인자지정하여 입력 datetime.time(23, 0, 5) >>> datetime.time(25) #인자허용값을 벗어난경우 Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> time(25) ValueError: hour must be in 0..23 |
-. datetime.time클래스 속성
속성 | 내용 |
hour | 시(읽기전용) |
minute | 분(읽기전용) |
second | 초(읽기전용) |
microsecond | 마이크로초(읽기전용) |
max | time객체가 표현할수 있는 최댓값 (0,0,0,0) |
min | time객체가 표현할수 있는 최솟값 (23,59,59,999999) |
ex)
>>> import datetime >>> T=datetime.time(23,30,15,2904) >>> T.hour #시 23 >>> T.minute #분 30 >>> T.second #초 15 >>> T.microsecond #마이크로초 2904 >>> T.max #time객체의 최댓값 datetime.time(23, 59, 59, 999999) >>> T.min #time객체의 최솟값 datetime.time(0, 0) |
-. datetime.time클래스가 지원하는 메서드
>replace([hour[, minute[, second[, microsecond[, tzinfo]]]]])
입력된 인자로 변경된 time객체를 반환, 원본객체는 변경되지 않음
변경하려는 속성만 명시적으로 전달할수 있음
>>> import datetime >>> T=datetime.time(23,30,15,3759) >>> T1=T.replace(microsecond=0) >>> T,T1 (datetime.time(23, 30, 15, 3759), datetime.time(23, 30, 15)) |
>isoformat()
time객체의 값을 "HH:MM:SS.mmmmmm'형식이나
'HH:MM:SS'형식(micro초가 없는경우)의 문자열을 반환
>>> import datetime >>> T=datetime.time(23,30,15,3759) >>> T.isoformat() '23:30:15.003759' |
>strftime(format)
지정된 포맷에 맞춰 datetime.time객체의 정보를 문자열로 반환
지시자 | 내용 |
%y | 연도를 축약하여 표시('13') |
%Y | 연도를 축약하지 않고 표시('2013') |
%b | 축약된 월이름('Mar') |
%B | 축약되지 않은 월 이름('March') |
%m | 숫자로 표현한 월(01~12) |
%d | 일(01~31) |
%H | 24시를 기준 시(00~23) |
%I(아이) | 12시를 기준 시(01~12) |
%M | 분(00~59) |
%S | 초(00~61) |
%p | 오전(AM)/오후(PM) 표시 ('AM') |
%a | 축약된 요일 이름('Fri') |
%A | 축약되지 않은 요일이름('Friday') |
%w | 요일을 숫자로 표시 (일:0, 월:1, 화:2, 수:3, 목:4, 금:5, 토:6) |
%j | 1월 1일부터 누적된 날짜(001~366) |
time모듈의 strftime메서드와 형식지시자가 같음
>>> import datetime >>> T=datetime.time(23,30,15,3759) >>> T.strftime('%Y %m %d %H:%M:%S:') '1900 01 01 23:30:15:' |
>> datetime.datetime 클래스 <<
datetime클래스는 date클래스와 time클래스의 조합으로 이루어져 있다.
생성자 : datetime.datetime(yesr, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
숫자로 각 인자를 받아서 datetime객체를 생성하며, 년, 월, 일은 생략이 불가하다.
명시적으로 인자를 지정하여 입력할수 있고, 생략된 인자는 0으로 초기화된다.
- year : 1 ~ 9999
- month : 1 ~ 12
- day : 1 ~ 해당월의 마지막 날짜
- hour : 0 ~ 23
- minute : 0 ~ 59
- second : 0 ~ 59
- microsecond : 0 ~ 999999
ex) 객체생성
>>> import datetime >>> datetime.datetime(2013,2,18) #년, 월, 일만 입력 datetime.datetime(2013, 2, 18, 0, 0) >>> datetime.datetime(2013,2,hour=23,second=30,day=18) #명시적으로 인자를 지정 datetime.datetime(2013, 2, 18, 23, 0, 30) >>> datetime.datetime(2013) #월,일인자가 생략되어 Error발생 Traceback (most recent call last): File "<pyshell#89>", line 1, in <module> datetime(2013) TypeError: Required argument 'month' (pos 2) not found |
-. datetime.datetime클래스 속성
속성 | 내용 |
year | 년(읽기전용) |
month | 월(읽기전용) |
day | 일(읽기전용) |
hour | 시(읽기전용) |
minute | 분(읽기전용) |
second | 초(읽기전용) |
microsecond | 마이크로초(읽기전용) |
max | datetime객체가 표현할수 있는 최댓값 (9999,12,31,23,59,59,999999) |
min | datetime객체가 표현할수 있는 최솟값 (1,1,1) |
-. datetime.datetime객체를 생성하는 클래스메서드
>today()
현재 LST 기준의datatime객체를 생성
>>> import datetime >>> datetime.datetime.today() datetime.datetime(2013, 3, 29, 4, 30, 17, 967000) |
>now([tz])
현재 LST기준의 datetime객체를 생성
시간대 정보가 입력되지 않으면 플랫폼의 시간대를 그대로 사용
>>> import datetime >>> datetime.datetime.now() datetime.datetime(2013, 3, 29, 4, 33, 3, 498000) |
>utcnow()
UTC기준의datetime객체를 생성
>>> import datetime >>> datetime.datetime.utcnow() datetime.datetime(2013, 3, 28, 19, 36, 38, 170000) |
>fromtimestamp(timestamp[,tz])
타임스탬프를 지방 기준의 datetime객체를 생성
>>> import datetime,time >>> datetime.datetime.fromtimestamp(time.time()) datetime.datetime(2013, 3, 29, 4, 43, 48, 201000) |
>utcfromtimestamp(timestamp)
타임스탬프를 UTC기준의 datetime객체를 생성
>>> import datetime,time >>> datetime.datetime.utcfromtimestamp(time.time()) datetime.datetime(2013, 3, 28, 19, 44, 46, 358000) |
>fromordinal(ordinal)
1년 1월 1일 이후로 누적된 날짜로부터 datetime객체를 생성
시간관련 값은 0으로 할당됨
>>> import datetime >>> datetime.datetime.fromordinal(1000) datetime.datetime(3, 9, 27, 0, 0) |
>combine(date,time)
date객체와 time객체를 입력받아서 datetime객체를 생성
>>> import datetime >>> D=datetime.date(2013,2,18) >>> T=datetime.time(23,30,15) >>> D datetime.date(2013, 2, 18) >>> T datetime.time(23, 30, 15) >>> DT=datetime.datetime.combine(D,T) >>> DT datetime.datetime(2013, 2, 18, 23, 30, 15) |
>strptime(date_string,format)
시간을 표현한 사용자가 정의한 형식문자열을 이용하여 datetime객체를 생성
지시자 | 내용 |
%y | 연도를 축약하여 표시('13') |
%Y | 연도를 축약하지 않고 표시('2013') |
%b | 축약된 월이름('Mar') |
%B | 축약되지 않은 월 이름('March') |
%m | 숫자로 표현한 월(01~12) |
%d | 일(01~31) |
%H | 24시를 기준 시(00~23) |
%I(아이) | 12시를 기준 시(01~12) |
%M | 분(00~59) |
%S | 초(00~61) |
%p | 오전(AM)/오후(PM) 표시 ('AM') |
%a | 축약된 요일 이름('Fri') |
%A | 축약되지 않은 요일이름('Friday') |
%w | 요일을 숫자로 표시 (일:0, 월:1, 화:2, 수:3, 목:4, 금:5, 토:6) |
%j | 1월 1일부터 누적된 날짜(001~366) |
time모듈의 strftime메서드와 형식지시자가 같음
>>> import datetime,time >>> timestring=time.ctime(1234567890) >>> timestring 'Sat Feb 14 08:31:30 2009' >>> datetime.datetime.strptime(timestring,"%a %b %d %H:%M:%S %Y") datetime.datetime(2009, 2, 14, 8, 31, 30) |
-. datetime.datetime객체를 이용하여 다른 값/형식으로 반환하는 메서드
>date()
원본객체의 년, 월, 일 정보를 가지고 있는 date객체를 반환
>>> import datetime >>> DT=datetime.datetime(2013,2,18,22,30,15) >>> D=DT.date() >>> D datetime.date(2013, 2, 18) |
>time()
원본객체의 시, 분, 초, 마이크로초를 가지고 있는 time객체를 반환
>>> import datetime >>> DT=datetime.datetime(2013,2,18,22,30,15) >>> T=DT.time() >>> T datetime.time(22, 30, 15) |
>replace()
입력된 값으로 변경된 datetime객체를 반환, 원본객체는 변경되지 않음
>>> import datetime >>> DT=datetime.datetime(2013,2,18,22,30,15) >>> DT_1=DT.replace(year=1987) >>> DT datetime.datetime(2013, 2, 18, 22, 30, 15) >>> DT_1 datetime.datetime(1987, 2, 18, 22, 30, 15) |
>timetuple()
datetime객체의 값을 time.struct_time형식의 시퀸스객체로 변환하여 반환
>>> import datetime >>> DT=datetime.datetime(2013,2,18,22,30,15) >>> DT.timetuple() time.struct_time(tm_year=2013, tm_mon=2, tm_mday=18, tm_hour=22, tm_min=30, tm_sec=15, tm_wday=0, tm_yday=49, tm_isdst=-1) |
>weekday()
요일을 정수로 변환하여 반환
월:0, 화:1, 수:2, 목:3, 금:4, 토:5, 일:6
>>> import datetime >>> DT=datetime.datetime.today() >>> DT.weekday() 4 |
>isoweekday()
ISO형식에 맞도록 요일을 정수 변환하여 반환
월:1, 화:2, 수:3, 목:4, 금:5, 토:6, 일:0
>>> import datetime >>> DT=datetime.datetime.today() >>> DT.isoweekday() 5 |
>isocalendar()
ISO형식에 맞는 날짜표현(ISO year, ISO week number, ISO weekday)을 튜플로 반환
>>> import datetime >>> DT=datetime.datetime.today() >>> DT.isocalendar() (2013, 13, 5) |
>isoformat()
datetime객체를 'YYYY-MM-DDTHH:MM:SS.mmmmmm'형식으로 변환하여 문자열로 반환
마이크로초가 0인경우 '.mmmmmm'부분은 생략됨
>>> import datetime >>> DT=datetime.datetime.today() >>> DT.isoformat() '2013-03-29T07:57:58.014000' >>> DT.replace(microsecond=0).isoformat() #마이크로초가 0인경우 '2013-03-29T07:57:58' |
>ctime()
datetime객체의 정보를 'Sun Mar 15 00:00:00 2009'형태의 문자열로 반환
>>> import datetime >>> DT=datetime.datetime.today() >>> DT.ctime() 'Fri Mar 29 07:57:58 2013' |
>strftime(format)
지정된 포맷형식에 맞추어 datetime.datetime객체를 문자열로 반환
지시자 | 내용 |
%y | 연도를 축약하여 표시('13') |
%Y | 연도를 축약하지 않고 표시('2013') |
%b | 축약된 월이름('Mar') |
%B | 축약되지 않은 월 이름('March') |
%m | 숫자로 표현한 월(01~12) |
%d | 일(01~31) |
%H | 24시를 기준 시(00~23) |
%I(아이) | 12시를 기준 시(01~12) |
%M | 분(00~59) |
%S | 초(00~61) |
%p | 오전(AM)/오후(PM) 표시 ('AM') |
%a | 축약된 요일 이름('Fri') |
%A | 축약되지 않은 요일이름('Friday') |
%w | 요일을 숫자로 표시 (일:0, 월:1, 화:2, 수:3, 목:4, 금:5, 토:6) |
%j | 1월 1일부터 누적된 날짜(001~366) |
time모듈의 strftime메서드와 형식지시자가 같음
>>> import datetime >>> DT=datetime.datetime.today() >>> DT.strftime('%Y-%m-%d %H:%M:%S %a') '2013-03-29 08:04:55 Fri' |
>> datetime.timedelta 클래스 <<
datetime.timedelta클래스는 두 날짜 혹은 시간 사이의 기간을 표현한다.
인자는 양수인경우 현시점으로부터 이후를 나타내며, 음수인경우 현시점 이전을 나타낸다.
생성자 : datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]])
ex) 객체생성
>>> import datetime >>> datetime.timedelta(days=-3) #3일 이전 datetime.timedelta(-3) >>> datetime.timedelta(hours=7) #7시간 이후 datetime.timedelta(0, 25200) >>> datetime.timedelta(weeks=2,days=3,hours=-3,minutes=30) datetime.timedelta(16, 77400) >>> datetime.timedelta(minutes=3,milliseconds=-20,microseconds=400) datetime.timedelta(0, 179, 980400) |
생성되는 timedelta객체의 값을 확인해보면 생성자에 전달된 값과 다른것을 알수 있다.
그 이유는 동일한 기간을 표현하는 방식이 다양하게 표현(1weeks와 7days는 동일함)될수 있기 대문에, 입력된 값을 가지고 timedelta객체에서 정규화과정을 거쳐 유일한 표현방식으로 변경하기 때문이다.
정규화 결과 timedelta객체 저장되는 값은 아래와 같다.
- days : -999999999 ~ 999999999
- seconds : 0 ~ 86399(24시간을 초로 환산하면 86400초)
- microseconds : 0 ~ 999999
그렇기 때문에 timedelta객체를 이용하여 표현할수 있는 가장 작은 값으 정규화과정을 거치면 아래와 같다.
>>> datetime.timedelta(microseconds=-1) #현재 이전으로 가장 작은값 datetime.timedelta(-1, 86399, 999999) >>> datetime.timedelta(microseconds=1) #현재 이후로 가장 작은값 datetime.timedelta(0, 0, 1) |
-. 시간, 날짜의 연산
생성된 timedelta클래스객체를 이용하여 아래의 연산을 수행할수 있다.
연산결과로는 모두 timedelta객체가 반환된다.
- timedelta_3 = timedelta_1 + timedelta_2
- timedelta_3 = timedelta_1 - timedelta_2
- timedelta_3 = timedelta_1 * int = int * timedelta_1
- timedelta_2 = timedelta_1 // int
- abs(timedelta)
아래는 timedelta의 연산을 수행하는 예이다.
>>> from datetime import timedelta >>> td_1 = timedelta(hours=7) #현재로부터 7시간 이후 >>> td_2 = timedelta(days=-3) #현재로부터 3일 이전 >>> td_1 + td_2 #두 timedelta의 합 datetime.timedelta(-3, 25200) #7시간 = 25200초 >>> td_1 - td_2 #두 timedelta의 차 datetime.timedelta(3, 25200) >>> td_1 * 4 #timedelta와 정수의 곱 datetime.timedelta(1, 14400) #28시간 = 1일4시간 = 1일14400초 >>> td_1 // 3 #25200초 // 3 datetime.timedelta(0, 8400) >>> abs(td_2) #기간의 절대값 datetime.timedelta(3) |
이 외에도 아래와 같이 비교연산도 가능하다.
>>> from datetime import timedelta >>> td_1 = timedelta(hours=7) >>> td_2 = timedelta(days=-3) >>> td_1 > td_2 True >>> td_1 < td_2 False >>> td_1 = timedelta(hours=24) #24시간 = 86400초 >>> td_2 = timedelta(seconds=86400) >>> td_1 == td_2 True |
생성된 timedelta객체를 이용하여 date, datetime객체를 변경할수 있다. 지원하는 연산은 아래와 같으며, 각 객체간의 비교연산도 가능하다.
- date_2 = date_1 + timedelta
- date_2 = date_1 - timedelta
- timedelta = date_2 - date_1
- datetime_2 = datetime_1 + timedelta
- datetime_2 = datetime_1 - timedelta
- timedelta = datetime_1 - datetime_2
아래는 date객체와 관련된 연산의 예제이다.
>>> from datetime import timedelta, date >>> d = date.today() >>> d datetime.date(2013, 3, 29) >>> td=timedelta(days=3) #timedelta를 3일로 설정 >>> d + td #오늘로부터 3일 후 datetime.date(2013, 4, 1) >>> d - td #오늘로부터 3일 전 datetime.date(2013, 3, 26) |
또한 두 date객체 사이의 기간(timedelta)을 구하기 위해서는 아래와 같이 '-'연산으로 측정가능하며, date객체간의 비교연산도 가능하다.
>>> from datetime import timedelta, date >>> d = date.today() >>> d2 = d.replace(day=20) >>> d2 datetime.date(2013, 3, 20) >>> dt = d - d2 >>> dt datetime.timedelta(9) >>> d2 > d False |
아래는datetime객체와 관련된 연산의 예제이다
date객체가 지원하는 모든연산이 가능하다.
>>> import datetime >>> dt=datetime.datetime.today() >>> dt datetime.datetime(2013, 4, 1, 23, 41, 52, 154000) >>> td=datetime.timedelta(days=2,hours=2) #2일 2시간 >>> dt + td #datetime객체에서 timedelta(2일 2시간)을 더함 datetime.datetime(2013, 4, 4, 1, 41, 52, 154000) >>> dt - td #datetime객체에서 timedelta(2일 2시간)을 뺌 datetime.datetime(2013, 3, 30, 21, 41, 52, 154000) >>> dt2 = dt.replace(month=1, day=4, hour=7) #dt 객체의 값중 월, 일, 시간을 변경 >>> dt2 datetime.datetime(2013, 1, 4, 7, 41, 52, 154000) >>> dt- dt2 #datetime객체간의 기간 datetime.timedelta(87, 57600) >>> dt > dt2 #비교연산 True |
참조 : 빠르게 활용하는 파이썬3 프로그래밍
'Python' 카테고리의 다른 글
Python,module fractions [분수] (0) | 2016.05.19 |
---|---|
Python,module math [수학] (0) | 2016.05.17 |
Python,module time [시간] (0) | 2016.05.17 |
Python, pickle (0) | 2016.05.17 |
Python, 모듈 사용하기 (0) | 2016.05.17 |
- Total
- Today
- Yesterday
- borderwidth
- 파이썬
- 리눅스
- activeforeground
- vba
- checkbutton
- 상수
- Private
- Composite Key
- disabledforeground
- activebackground
- Java
- highlightthickness
- command
- FetchType
- onetomany
- Module
- Excel
- IdClass
- Linux
- indicatoron
- ManyToOne
- 폼
- JPA
- highlightbackground
- tkinter
- apache
- Python
- tkinter command & bind [명령어묶기와 사건묶기] Python
- fetch join
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |