datetime은 날짜와 시간을 다루는 라이브러리입니다.
이 라이브러리를 활용하여 현재 시간을 구하거나, 특정 시간 포맷의 문자열로 변환할 수도 있습니다.
다음과 같은 내용들을 알아보겠습니다.
1. 현재 날짜 및 시간에 대한 datetime 객체 생성 : now()
now()
는 현재 날짜, 시간 정보를 갖고 있는 datetime 객체를 생성합니다.
import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)
print(type(datetime_object))
Output:
2020-10-11 21:37:45.648730
<class 'datetime.datetime'>
from datetime
을 사용하여 간단히 datetime.now()
로 표현할 수도 있습니다.
from datetime import datetime
datetime_object = datetime.now()
print(datetime_object)
2. 현재 날짜에 대한 date 객체 생성 : today()
today()
는 현재 날짜 정보를 갖고 있는 date 객체를 생성합니다.
import datetime
date_object = datetime.date.today()
print(date_object)
print(type(date_object))
Output:
2020-10-11
<class 'datetime.date'>
from datetime
으로 date.today()
처럼 간단히 표현할 수 있습니다.
from datetime import date
today = date.today()
print(today)
Output:
2020-10-11
3. 어떤 시간에 대한 date, datetime 객체 생성
특정 날짜 정보를 갖고 있는 datetime 객체를 직접 생성할 수도 있습니다.
다음과 같이 생성자에 인자를 전달하면 됩니다.
- datetime(year, month, day, hour, min, second)
- date(year, month, day)
d = datetime(2020, 10, 11, 10, 30, 20)
print(d)
a = date(2018, 10, 11)
print(a)
Output:
2020-10-11 10:30:20
2018-10-11
4. Timestamp로 date, datetime 객체 생성
Timestamp는 1970/01/01 (UTC)
부터 어떤 시간까지의 초를 계산한 값입니다.
다음과 같이 fromtimestamp()
의 인자로 timestamp를 전달하면 이것에 해당하는 date, datetime 객체가 생성됩니다.
from datetime import date
from datetime import datetime
date_obj = date.fromtimestamp(1602374400)
print("Current Date =", date_obj)
datetime_obj = datetime.fromtimestamp(1602374400)
print("Current DateTime =", datetime_obj)
Output:
Current Date = 2020-10-11
Current DateTime = 2020-10-11 09:00:00
5. date 객체의 year, month, day
다음과 같이 date 객체에서 year, month, day 값을 가져올 수 있습니다.
from datetime import date
today = date.today()
print("year:", today.year)
print("month:", today.month)
print("day:", today.day)
Output:
year: 2020
month: 10
day: 11
6. 어떤 시간에 대한 time 객체 생성
time()
은 인자로 전달된 값으로 time 객체를 생성합니다.
from datetime import time
# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a)
print(type(a))
# time(hour, minute, second)
b = time(15, 25, 30)
print("b =", b)
# time(hour, minute and second)
c = time(hour = 15, minute = 25, second = 30)
print("c =", c)
# time(hour, minute, second, microsecond)
d = time(15, 25, 30, 123456)
print("d =", d)
Output:
a = 00:00:00
<class 'datetime.time'>
b = 15:25:30
c = 15:25:30
d = 15:25:30.123456
다음과 같이 time 객체에서 hour, minute, second 등의 값일 읽을 수 있습니다.
from datetime import time
a = time(15, 25, 30)
print("time =", a)
print("hour =", a.hour)
print("minute =", a.minute)
print("second =", a.second)
print("microsecond =", a.microsecond)
Output:
time = 15:25:30
hour = 15
minute = 25
second = 30
microsecond = 0
7. timedelta로 시간 차이 표현
timedelta는 두개의 시간 객체의 차이를 표현합니다.
다음과 같이 두개의 date, datetime을 빼면 timedelta 객체가 생성되며 시간 차이 값을 갖고 있습니다.
from datetime import datetime, date
time1 = date(year = 2020, month = 10, day = 11)
time2 = date(year = 2018, month = 11, day = 22)
time_delta = time1 - time2
print("time_delta =", time_delta)
print("type =", type(time_delta))
time1 = datetime(year = 2020, month = 10, day = 11, hour = 15, minute =43, second = 30)
time2 = datetime(year = 2018, month = 11, day = 22, hour = 12, minute = 20, second = 11)
time_delta = time1 - time2
print("time_delta =", time_delta)
print("type =", type(time_delta))
Output:
time_delta = 689 days, 0:00:00
type = <class 'datetime.timedelta'>
time_delta = 689 days, 3:23:19
type = <class 'datetime.timedelta'>
8. 특정 시간 형식으로 변환
strftime()
는 datetime 객체를 원하는 시간 형식으로 변환하고 그 결과를 문자열로 리턴합니다.
from datetime import datetime
# current date and time
now = datetime.now()
format_date = now.strftime("%H:%M:%S")
print("time:", format_date)
format_date = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("date and time:", format_date)
format_date = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("date and time:", format_date)
Output:
time: 21:57:38
date and time: 10/11/2020, 21:57:38
date and time: 11/10/2020, 21:57:38
9. 문자열을 datetime 객체로 변환
strptime()
는 문자열로 표현된 시간을 datetime 객체로 변환합니다.
다음과 같이 문자열을 파싱하고 datetime 객체로 변환할 수 있습니다.
from datetime import datetime
date_str = "11 October, 2020"
datetime_obj = datetime.strptime(date_str, "%d %B, %Y")
print("date =", datetime_obj)
print(type(datetime_obj))
date_str = "11/10/2020, 12:20:30"
datetime_obj = datetime.strptime(date_str, "%d/%m/%Y, %H:%M:%S")
print("date =", datetime_obj)
print(type(datetime_obj))
Output:
date = 2020-10-11 00:00:00
<class 'datetime.datetime'>
date = 2020-10-11 12:20:30
<class 'datetime.datetime'>
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)