본문 바로가기
SW 개발/Python

Python: 날짜와 시간 처리 함수(현재 날짜, 어제 날짜, UTC 시간)

by 모바일 SW 개발자 Kibua20 2020. 11. 30.
반응형

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 모듈 사용법

[모바일 SW 개발/Python] - Python Error: #!/usr/bin/env python3: 그런 파일이나 디렉터리가 없습니다 (No such file or directory)

[개발환경/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 제공

반응형



댓글4