프로그래밍 언어/Python

Python 표준 라이브러리 (날짜, 시간 -datetime)

dpswlsldj 2021. 3. 1. 15:40
728x90

Python에서는 날짜와 시간을 표현하기 위해 datetime 라이브러리를 사용합니다.

 

아래와 같은 항목들을 다룹니다.

Year Month Day Hour Minute Second Microsecond

 

함수 내용 사용법
datetime.datetime.now() 현재 시간 datetime.datetime.now()
datetime.date() 2021년 3월 1일 datetime.date(2021, 3, 1)
datetime.time() 15시 30분 00초 datetime.time(15, 30, 00)
datetime.datetime() 2021년 3월 1일 15시 30분 00초 datetime.datetime(2021, 3, 1, 15, 30, 00)
weekday() 요일을 0 ~ 6 숫자로 표현합니다.
0 : 월요일
datetime.datetime.now().weekday()
strftime() 시간을 지정한 format으로 보여줌 datetime.dattime.now().strftime('%Y-%m-%d %a %p %H:%M:%S')

 

아래와 같은 결과를 얻을 수 있습니다.

import datetime

d = datetime.date(2021, 3, 1)
print(d)
print(d.year, d.month, d.day)

t = datetime.time(14, 55, 00)
print(t)
print(t.hour, t.minute, t.second)

dt = datetime.datetime(2021, 3, 1, 14, 55, 00)
print(dt)
print(dt.year, dt.hour)

time_now = datetime.datetime.now()
print(time_now)

str_time = time_now.strftime('%Y-%m-%d %a %p %H:%M:%S')
print(str_time)


######
2021-03-01
2021 3 1
14:55:00
14 55 0
2021-03-01 14:55:00
2021 14
2021-03-01 15:37:42.540496
2021-03-01 Mon PM 15:37:42

strftime() 에서 사용할 수 있는 포맷은 각각 아래와 같습니다.

  - docs.python.org/ko/3/library/datetime.html#strftime-and-strptime-format-codes

 

지시자 의미 노트

%a

요일을 로케일의 축약된 이름으로.

Sun, Mon, …, Sat (en_US);

So, Mo, …, Sa (de_DE)

(1)

%A

요일을 로케일의 전체 이름으로.

Sunday, Monday, …, Saturday (en_US);

Sonntag, Montag, …, Samstag (de_DE)

(1)

%w

요일을 10진수로, 0은 일요일이고 6은 토요일입니다.

0, 1, …, 6

 

%d

월중 일(day of the month)을 0으로 채워진 10진수로.

01, 02, …, 31

(9)

%b

월을 로케일의 축약된 이름으로.

Jan, Feb, …, Dec (en_US);

Jan, Feb, …, Dez (de_DE)

(1)

%B

월을 로케일의 전체 이름으로.

January, February, …, December (en_US);

Januar, Februar, …, Dezember (de_DE)

(1)

%m

월을 0으로 채워진 10진수로.

01, 02, …, 12

(9)

%y

세기가 없는 해(year)를 0으로 채워진 10진수로.

00, 01, …, 99

(9)

%Y

세기가 있는 해(year)를 10진수로.

0001, 0002, …, 2013, 2014, …, 9998, 9999

(2)

%H

시(24시간제)를 0으로 채워진 십진수로.

00, 01, …, 23

(9)

%I

시(12시간제)를 0으로 채워진 십진수로.

01, 02, …, 12

(9)

%p

로케일의 오전이나 오후에 해당하는 것.

AM, PM (en_US);

am, pm (de_DE)

(1), (3)

%M

분을 0으로 채워진 십진수로.

00, 01, …, 59

(9)

%S

초를 0으로 채워진 10진수로.

00, 01, …, 59

(4), (9)

%f

마이크로초를 왼쪽에 0으로 채워진 십진수로.

000000, 000001, …, 999999

(5)

%z

±HHMM[SS[.ffffff]] 형태의 UTC 오프셋 (객체가 나이브하면 빈 문자열).

(비어 있음), +0000, -0400, +1030, +063415, -030712.345216

(6)

%Z

시간대 이름 (객체가 나이브하면 빈 문자열).

(비어 있음), UTC, GMT

(6)

%j

연중 일(day of the year)을 0으로 채워진 십진수로.

001, 002, …, 366

(9)

%U

연중 주 번호(일요일이 주의 시작)를 0으로 채워진 10진수로. 첫 번째 일요일에 선행하는 새해의 모든 날은 주 0으로 간주합니다.

00, 01, …, 53

(7), (9)

%W

연중 주 번호(월요일이 주의 시작)를 십진수로. 첫 번째 월요일에 선행하는 새해의 모든 말은 주 0으로 간주합니다.

00, 01, …, 53

(7), (9)

%c

로케일의 적절한 날짜와 시간 표현.

Tue Aug 16 21:30:00 1988 (en_US);

Di 16 Aug 21:30:00 1988 (de_DE)

(1)

%x

로케일의 적절한 날짜 표현.

08/16/88 (None);

08/16/1988 (en_US);

16.08.1988 (de_DE)

(1)

%X

로케일의 적절한 시간 표현.

21:30:00 (en_US);

21:30:00 (de_DE)

(1)

%%

리터럴 '%' 문자.

%