Python - 날짜, 시간 문자열을 datetime으로 변환

By JS | Last updated: June 27, 2021

날짜, 시간 형식의 문자열을 datetime으로 변환하는 방법을 소개합니다.

datetime.strptime()

datetime.strptime()는 문자열을 datetime 객체로 변환하여 리턴합니다.

from datetime import datetime

date_time_str = '2021-06-27 06:51:22'

date_time_obj = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S')

print(type(date_time_obj))
print(date_time_obj)

Output:

<class 'datetime.datetime'>
2021-06-27 06:51:22

Exception handling

strptime의 format과 문자열의 형식이 일치하지 않는 경우 Exception이 발생합니다. try-except로 예외처리 할 수 있습니다.

from datetime import datetime

datetime_str = '04/19/21 11:35:20'

try:
    datetime_object = datetime.strptime(datetime_str, '%m/%d/%y')
except ValueError as ve:
    print('ValueError:', ve)

Output:

ValueError: unconverted data remains:  11:35:20

Example 1

from datetime import datetime

date_time_str = '12/05/21 01:55:19'

date_time_obj = datetime.strptime(date_time_str, '%d/%m/%y %H:%M:%S')

print(type(date_time_obj))
print(date_time_obj)

Output:

<class 'datetime.datetime'>
2021-05-12 01:55:19

Example 2

from datetime import datetime

date_str = '02-19-2021'

date_object = datetime.strptime(date_str, '%m-%d-%Y')

print(type(date_object))
print(date_object)

Output:

<class 'datetime.datetime'>
2021-02-19 00:00:00

date 타입으로 변환

datetime 객체의 date() 메소드 호출 시, date 객체로 변환됩니다.

from datetime import datetime

date_time_str = '2021-06-27 06:51:22'

date_obj = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S').date()

print(type(date_obj))
print(date_obj)

Output:

<class 'datetime.date'>
2021-06-27

Format code 리스트

strptime의 format에 사용되는 code 리스트입니다. 이 테이블을 참조하여 다른 형식의 문자열을 datetime으로 변환하도록 구현할 수 있습니다.

Directive Meaning Example
%a Abbreviated weekday name. Sun, Mon, ...
%A Full weekday name. Sunday, Monday, ...
%w Weekday as a decimal number. 0, 1, ..., 6
%d Day of the month as a zero-padded decimal. 01, 02, ..., 31
%-d Day of the month as a decimal number. 1, 2, ..., 30
%b Abbreviated month name. Jan, Feb, ..., Dec
%B Full month name. January, February, ...
%m Month as a zero-padded decimal number. 01, 02, ..., 12
%-m Month as a decimal number. 1, 2, ..., 12
%y Year without century as a zero-padded decimal number. 00, 01, ..., 99
%-y Year without century as a decimal number. 0, 1, ..., 99
%Y Year with century as a decimal number. 2013, 2019 etc.
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, ..., 23
%-H Hour (24-hour clock) as a decimal number. 0, 1, ..., 23
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, ..., 12
%-I Hour (12-hour clock) as a decimal number. 1, 2, ... 12
%p Locale’s AM or PM. AM, PM
%M Minute as a zero-padded decimal number. 00, 01, ..., 59
%-M Minute as a decimal number. 0, 1, ..., 59
%S Second as a zero-padded decimal number. 00, 01, ..., 59
%-S Second as a decimal number. 0, 1, ..., 59
%f Microsecond as a decimal number, zero-padded on the left. 000000 - 999999
%z UTC offset in the form +HHMM or -HHMM.
%Z Time zone name.
%j Day of the year as a zero-padded decimal number. 001, 002, ..., 366
%-j Day of the year as a decimal number. 1, 2, ..., 366
%U Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, ..., 53
%W Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, ..., 53
%c Locale’s appropriate date and time representation. Mon Sep 30 07:06:05 2013
%x Locale’s appropriate date representation. 09/30/13
%X Locale’s appropriate time representation. 07:06:05
%% A literal '%' character. %

References

Related Posts

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha