관리 메뉴

웹개발자의 기지개

[Python] datetime 와 strftime()과 strptime() 비교 본문

python

[Python] datetime 와 strftime()과 strptime() 비교

http://portfolio.wonpaper.net 2022. 5. 6. 23:57

날짜와 시간 모듈이다.

https://docs.python.org/ko/3/library/datetime.html

 

datetime — 기본 날짜와 시간 형 — Python 3.10.4 문서

datetime — 기본 날짜와 시간 형 소스 코드: Lib/datetime.py datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공합니다. 날짜와 시간 산술이 지원되지만, 구현의 초점은 출력 포매팅과 조작을 위한

docs.python.org

 

strftime() 과 strptime() 비교

https://docs.python.org/ko/3/library/datetime.html#strftime-strptime-behavior

 

datetime — 기본 날짜와 시간 형 — Python 3.10.4 문서

datetime — 기본 날짜와 시간 형 소스 코드: Lib/datetime.py datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공합니다. 날짜와 시간 산술이 지원되지만, 구현의 초점은 출력 포매팅과 조작을 위한

docs.python.org

 

date, datetime  time 객체는 모두 strftime(format) 메서드를 지원하여, 명시적 포맷 문자열로 제어된 시간을 나타내는 문자열을 만듭니다.

반대로, datetime.strptime() 클래스 메서드는 날짜와 시간을 나타내는 문자열과 해당 포맷 문자열로 datetime 객체를 만듭니다.

아래 표는 strftime() strptime()의 고수준 비교를 제공합니다:

strftimestrptime
용도 주어진 포맷에 따라 객체를 문자열로 변환합니다 주어진 해당 포맷으로 문자열을 datetime 객체로 구문 분석합니다
메서드의 형 인스턴스 메서드 클래스 메서드
메서드가 제공되는 곳 date; datetime; time datetime
서명 strftime(format) strptime(date_string, format)

 

 

skogkatt 님의 잘 정리된 아래 소스를 소개한다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import datetime
 
# 현재 날짜 가져오기
# datetime. 을 생략하고 싶으면 from datetime import datetime 으로
datetime.datetime.today()
datetime.datetime.now()
 
print(datetime.datetime.now())  # 2020-01-07 15:40:15.087337
 
now = datetime.datetime.now()
print(now)              # 2020-01-07 15:40:15.087337
 
print("\n")
 
# 년, 월, 일, 시, 분, 초
print(now.year)         # 2020
print(now.month)        # 1
print(now.day)          # 7
print(now.hour)         # 15
print(now.minute)       # 40
print(now.second)       # 15
print(now.microsecond)  # 087337
 
print("\n")
 
# 날짜, 시간 연산 : datetime.timedelta(시간 단위=숫자)
# 시간 단위는 weeks, days, hours, minutes, seconds, milliseconds, microseconds 사용 가능
print(now + datetime.timedelta(weeks=1))        # 2020-01-14 15:40:15.087337
print(now + datetime.timedelta(days=1))         # 2020-01-08 15:40:15.087337
print(now + datetime.timedelta(hours=5, minutes=10))    # 2020-01-07 20:50:15.087337
 
print("\n")
 
# 시간을 문자열로 (원하는 포맷으로) : strftime()
print(now.strftime('%Y-%m-%d'))             # 2020-01-07
print(now.strftime('%H:%M:%S'))             # 15:40:15
print(now.strftime('%Y-%m-%d %H:%M:%S'))    # 2020-01-07 15:40:15
 
print("\n")
 
# 시간 포맷의 문자열을 시간 형식으로 : strptime()
print(datetime.datetime.strptime('2020-01-07 15:40:15''%Y-%m-%d %H:%M:%S'))
# 2020-01-07 15:40:15
 
print(type(datetime.datetime.strptime('2020-01-07 15:40:15''%Y-%m-%d %H:%M:%S')))
# <class 'datetime.datetime'>
 
cs

 

 

 

참고 : https://skogkatt.tistory.com/87?category=870165

Comments