본문 바로가기
Programming

Python from datetime import datetime / Datetime 모듈 사용하는 방법

by 하하호호 2021. 12. 7.
반응형

 

 

timedelta class

기간을 표현하기 위해서 사용

timedelta 생성자는 주,일,시,분,초,마이크로초를 인자로 받는다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> from datetime import date, timedelta
>>> week = timedelta(weeks=1)
>>> week
datetime.timedelta(days=7)
>>> next_week = date.today() + week
>>> next_week
datetime.date(2020725)
>>> two_weeks = week * 2
>>> two_weeks
datetime.timedelta(days=14)
>>> week < two_weeks
True
>>> two_weeks == timedelta(weeks=2)
True
>>> last_week = next_week - two_weeks
>>> last_week
datetime.date(2020711)
cs

 

timezone

 

시간대를 표현한다.

UTC기준으로 시차를 표현해서 timezone객체를

생성한다. 한국은 UTC 기준 9시간이 빠르다.

 

파라미터를 0으로 입력하면

UTC 자체의 객체가 생성된다.

 

1
2
3
>>> from datetime import timedelta, timezone
>>> timezone(timedelta(hours=9))
datetime.timezone(datetime.timedelta(seconds=32400))
cs
1
2
3
4
>>> timezone(timedelta(0))
datetime.timezone.utc
>>> timezone.utc
datetime.timezone.utc
cs

 

date

날짜를 표현한다.

파라미터는 연/월/일을 받는다.

 

1
2
3
4
5
6
7
8
9
>>> from datetime import date
>>> date(20191225)
datetime.date(20191225)
 
>>> date.today()
datetime.date(2020718)
 
>>> today.isoformat()
'2020-07-18'
cs

 

 

fromisoformat() method는 YYYY-MM-DD형태의

문자열을 객체로 반환한다.

1
2
>>> date.fromisoformat('2020-07-18')
datetime.date(2020718)
cs

 

 

today() 메서드를 사용하면 년/월/일에 쉽게

접근이 가능하다. 

 

weekday는 주중 무슨 요일인지 확인

할 수 있다. weekday는 월요일이 0으로

시작하지만, isoweekday는 월요일이

1로 시작한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
 
>>> today = date.today()
>>> today.year
2020
>>> today.month
7
>>> today.day
18
>>> today.weekday()
5
>>> today.isoweekday()
6
 
cs

 

time

시간을 표시한다.

시,분,초,마이크로초을 파라미터로 받는다. 

파라미터를 생략할 경우 0으로 초기화된다.

 

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
>>> from datetime import time
>>> time(134235)
datetime.time(134235)
 
>>> time.fromisoformat('13:42:35.458+09:00')
datetime.time(134235458000, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)))
 
>>> from datetime import time, timedelta, timezone
>>> t = time(134235458000, tzinfo=timezone(timedelta(hours=9)))
>>> t.isoformat()
'13:42:35.458000+09:00'
 
>>> t = time(134235458000, tzinfo=timezone(timedelta(hours=9)))
>>> t.hour
13
>>> t.minute
42
>>> t.second
35
>>> t.microsecond
458000
>>> t.tzinfo
datetime.timezone(datetime.timedelta(seconds=32400))
 
>>> t.replace(hour=14)
datetime.time(144235458000, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)))
cs

 

datetime

날짜와 시간을 동시에 표현할 수 있다.

date + time class의 대부분의 기능을

가지고 있다.

 

date 객체와 time객체를 이미 만들었다면

combine 메서드를 가지고 새로운 datetime

객체를 만들 수 있다.

 

현재 시간정보를 얻기 위해서는 now() 메서드를

사용한다. 현재 날짜와 시간을 얻을 수 있다.

 

strptime()과 strftime() 메서드는 날짜의

포맷을 지정한다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> from datetime import datetime
>>> datetime(2020718132623)
datetime.datetime(2020718132623)
 
>>> from datetime import date, datetime, time
>>> d = date(2020718)
>>> t = time(132623)
>>> datetime.combine(d, t)
datetime.datetime(2020718132623)
 
>>> from datetime import datetime, timezone
>>> datetime.now()
datetime.datetime(202071813403020143)
>>> datetime.now(timezone.utc)
datetime.datetime(2020718174126814580, tzinfo=datetime.timezone.utc)
 
>>> today.strftime('%Y/%m/%d')
'2020/07/18'
 
>>> datetime.strptime('2020/07/18''%Y/%m/%d')
datetime.datetime(202071800)
cs
반응형

댓글