[Python] Datetime, String, 날짜, 문자, 변환 방법, 차이 계산

2019. 12. 23. 19:15카테고리 없음

python에서 날짜를 Datetime 시계열과 문자열 String 으로 변환하는 방법

 

datetime.datetime.strptime(문자열날짜, 시계열 형식).date()

version_list는 [시간정보, url]로 이루어져 있음. 

 

코드

from datetime import datetime

for each_datetime, each_url in version_list:
        
        print("===> each_datetime : ", type(each_datetime),  each_datetime)
        print("===> each_url : ", type(each_url), each_url)

그냥 출력하면 아래와 같이 문자열로 나옴.

 

===> each_datetime :  <class 'str'> 2019-09-15T23:32:11Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=7
===> each_datetime :  <class 'str'> 2019-08-30T00:00:42Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=6
===> each_datetime :  <class 'str'> 2016-04-30T03:03:03Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=5
===> each_datetime :  <class 'str'> 2015-03-15T23:24:18Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=4
===> each_datetime :  <class 'str'> 2015-02-05T02:30:04Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=3
===> each_datetime :  <class 'str'> 2014-10-31T06:39:26Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=2
===> each_datetime :  <class 'str'> 2014-09-29T07:24:56Z
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=1

여기에 datetime.strptime()함수를 추가

  • %Y : 4자리 수 년도 / %y : 2자리 수 년도
  • %m : 2자리수 월 / %b : 월 영어로(jan, Feb,...)
  • %d : 2자리 일 / %a : 요일 영어로(Sun, Mon, ...)
  • %H : 24시간제 2자리 시간 / %I : 12시간제 2자리 시간
  • %M : 2자리 분 
  • %S : 자리 초
 for each_datetime, each_url in version_list:
        each_datetime = each_datetime.translate({ord('T'):' ', ord('Z'):''})
        each_datetime = datetime.strptime(each_datetime, '%Y-%m-%d %H:%M:%S')
        print("===> each_datetime : ", type(each_datetime),  each_datetime)
        print("===> each_url : ", type(each_url), each_url)
===> each_datetime :  <class 'datetime.datetime'> 2019-09-15 23:32:11
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=7
===> each_datetime :  <class 'datetime.datetime'> 2019-08-30 00:00:42
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=6
===> each_datetime :  <class 'datetime.datetime'> 2016-04-30 03:03:03
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=5
===> each_datetime :  <class 'datetime.datetime'> 2015-03-15 23:24:18
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=4
===> each_datetime :  <class 'datetime.datetime'> 2015-02-05 02:30:04
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=3
===> each_datetime :  <class 'datetime.datetime'> 2014-10-31 06:39:26
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=2
===> each_datetime :  <class 'datetime.datetime'> 2014-09-29 07:24:56
===> each_url :  <class 'str'> /%EC%9B%B9_%ED%91%9C%EC%A4%80?rev=1

문자열에서 시계열로 바뀐 것을 확인

 

 

데이터 포맷 형식은 아래를 링크 참고 

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

 

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

datetime — 기본 날짜와 시간 형 소스 코드: Lib/datetime.py datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공합니다. 날짜와 시간 산술이 지원되지만, 구현의 초점은 출력 포매팅과 조작을 위한 효율적인 어트리뷰트 추출입니다. 더 보기 모듈 calendar일반 달력 관련 함수들. 모듈 time시간 액세스와 변환. 패키지 dateutil시간대와 구문 분석 지원이 확장된 제삼자 라이브러리. 어웨어와 나이브 객체 날짜와 시간 객체는

docs.python.org

 

---

 

days : 날짜 수를 반환

datetime 오브젝트에 days를 붙이면 날 수를 반환함. 해당 날짜로 조건문 사용 가능

days_gap = recent_version - each_datetime

if days_gap.days > 20:
	print(" 20일 이상 차이남")