Python에서 날짜와 시간을 처리하는 datetime 모듈을 제공합니다.
현재 날짜와 시간 구하기
import datetime
today =datetime.datetime.now()
→ 2020-11-29 21:21:22.933386
d1 = today.strftime("%Y%m%d")
→ 20201129
어제 날짜와 시간
import datetime
today =datetime.datetime.now()
→ 2020-11-29 21:21:22.933386
yesterday = today - datetime.timedelta(1)
→ 2020-11-28 21:21:22.933386
d2 = yesterday.strftime("%Y%m%d")
→ 20201129
timedelta 함수 (출처: Ptyhon 공식 매뉴얼)
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
모든 인자는 선택적이며 기본값은 0입니다. 인자는 정수나 부동 소수점 수일 수 있으며, 양수나 음수일 수 있습니다.
days, seconds 및 microseconds만 내부적으로 저장됩니다. 인자는 이 단위로 변환됩니다:
- 밀리 초는 1000마이크로초로 변환됩니다.
- 분은 60초로 변환됩니다
- 시간은 3600초로 변환됩니다.
- 주는 7일로 변환됩니다.
그런 다음 days, seconds 및 microseconds를 다음처럼 정규화하여 표현이 고유하도록 만듭니다
- 0 <= microseconds < 1000000
- 0 <= seconds < 3600*24 (하루 내의 초 수)
- -999999999 <= days <= 999999999
strformate() 함수 (출처: Ptyhon 공식 매뉴얼)
strformat() 함수는 날짜와 시간을 다양한 포맷으로 표시 가능합니다.
지시자 | 의미 | 예제 |
%a (%A) | 요일 이름(전체 요일) | Sun (Sunday) |
%d | 날짜를 0으로 채워진 10진수로 표시 | 01, 02, …, 31 |
%b %B | 월을 표시 (전체 월을 표시) | Jan (January) |
%m | 월을 0으로 채워진 10진수로. | 01, 02, …, 12 |
%y (%Y) | year를 0으로 채워진 10진수로. | 20 (2020) |
%H | 시(24시간제)를 0으로 채워진 십진수로. | 00, 01, …, 23 |
%I | 시(12시간제)를 0으로 채워진 십진수로. | 01, 02, …, 12 |
%M | 분을 0으로 채워진 십진수로. | 00, 01, …, 59 |
%S | 초를 0으로 채워진 10진수로. | 00, 01, …, 59 |
%f | 마이크로초를 왼쪽에 0으로 채워진 십진수로. | 000000, 000001, …, 999999 |
%z | ±HHMM[SS[.ffffff]] 형태의 UTC 오프셋 (객체가 나이브하면 빈 문자열). | (비어 있음), +0000, -0400, +1030, +063415, -030712.345216 |
%Z | 시간대 이름 (객체가 나이브하면 빈 문자열). | (비어 있음), UTC, EST, CST |
%j | 연중 일(day of the year)을 0으로 채워진 십진수로. | 001, 002, …, 366 |
%U | 연중 주 번호(일요일이 주의 시작)를 0으로 채워진 10진수로. 첫 번째 일요일에 선행하는 새해의 모든 날은 주 0으로 간주합니다. | 00, 01, …, 53 |
%W | 연중 주 번호(월요일이 주의 시작)를 십진수로. 첫 번째 월요일에 선행하는 새해의 모든 말은 주 0으로 간주합니다. | 00, 01, …, 53 |
%c | 로케일의 적절한 날짜와 시간 표현. | Tue Aug 16 21:30:00 1988 (en_US); Di 16 Aug 21:30:00 1988 (de_DE) |
%x | 로케일의 적절한 날짜 표현. | 08/16/88 (None); 08/16/1988 (en_US); 16.08.1988 (de_DE) |
%X | 로케일의 적절한 시간 표현. | 21:30:00 (en_US); 21:30:00 (de_DE) |
%% | 리터럴 '%' 문자. | % |
UTC (Coordinated Universal Time ) 기준 시간
UTC는 '협정 세계 표준시'로 1972년 1월 1일부터 시행된 국제 표준시입니다. 시간을 저장할 때 지역별 차이를 고려하기 위해서는 UTC 기준 시간으로 처리하는 것이 좋습니다. 특히 서버나 애플리케이션이 여러 지역에 배포하는 경우에는 동일한 기준인 UTC를 값을 사용 DB에 저장해야 시차에 따른 오류가 없습니다.
kstnow = datetime.datetime.now()
→ 2020-11-30 21:52:11.771790 (Local 시간)
utcnow = datetime.datetime.utcnow()
→ 2020-11-30 12:52:11.771800
import datetime
today =datetime.datetime.now()
yesterday = today - datetime.timedelta(1)
print (today)
print (yesterday)
d1 = today.strftime("%a%y%m%d")
d2 = yesterday.strftime("%a%A%y%m%d")
print (d2)
now = datetime.datetime.now()
print (now)
now = datetime.datetime.utcnow()
print (now)
#실행 결과#
## 2020-11-30 21:52:11.771696
## 2020-11-29 21:52:11.771696
## SunSunday201129
## 2020-11-30 21:52:11.771790
## 2020-11-30 12:52:11.771800
관련 글
[모바일 SW 개발/Python] - Python: xmltodict를 활용하여 XML를 JSON으로 변환하는 방법
[모바일 SW 개발/REST API] - 공공 데이터 Open API 사용법: 코로나 확진자 현황 API (sample code)
[개발환경/Google Cloud Platform] - IP Address CIDR 표현법과 사용 예
[모바일 SW 개발/Python] - Python 명령어 처리: Argparse 모듈 (ArgumentParser 사용 예제)
[모바일 SW 개발/Python] - Python에서 사용자 입력 받는 방법: input()
[모바일 SW 개발/Android] - Android에서 Python 실행 (SL4A와 Termux 활용)
[모바일 SW 개발/Python] - Python: JSON 개념과 json 모듈 사용법
[개발환경/Web Server] - Python: Web Framework Flask 사용하기
[모바일 SW 개발/Python] - 파이썬으로 Apk Download 자동화: Selenium기반의 Apk 크롤러
[모바일 SW 개발/Python] - Python code 숨기는 방법: PyInstaller로 실행 파일 만들기
[모바일 SW 개발/Python] - Python 여러 버전 설치 방법 (3.x and 3.y 동시 설치)
[모바일 SW 개발/Python] - Python 폴더 및 파일 처리 함수 모음
[모바일 SW 개발/Python] - Python: 폴더 백업 기능 구현 (7zip 압축, Sample code)
[모바일 SW 개발/Python] - Python 표준 입출력(stdin/stdout) 활용 - 리눅스 프로그램과 연동
[모바일 SW 개발/Python] - Python 소스 숨기는 방법: pyc 활용 (Bytecode로 컴파일)
[모바일 SW 개발/Python] - Python JSON 사용 시 TypeError: Object of type bytes is not JSON serializable
[모바일 SW 개발/Python] - Python 2.7과 3.8호환성: a bytes-like object is required, not 'str'에러 수정
[모바일 SW 개발/Python] - [Tips] Python 에서 XML comment 처리 - Sample code 제공
댓글