Python에서 문자열을 날짜/시간으로 변환하는 방법

한 유형의 데이터에서 다른 유형의 데이터로 변환하는 것은 모든 프로그래밍 언어에서 매우 중요합니다. 거의 모든 프로그래밍 언어는 내장 데이터 유형에 대한 유형 변환을 지원합니다.

datetime과 같은 사용자 정의 데이터 유형에는 변환을 위한 추가 모듈이 필요합니다. 모듈이 필요합니다. 특히 날짜/시간 변환 작업은 프로그래머에게 결코 쉬운 일이 아니므로 모듈이 필요합니다. 다행스럽게도 파이썬에는 datetime과 함께 작동하는 내장 모듈이 있습니다.

다른 모듈을 사용하여 파이썬에서 datetime 문자열을 datetime 객체로 변환하는 방법을 배웁니다. 그것에 뛰어 들기 전에 먼저 변환해야 하는 이유를 살펴보겠습니다.

datetime 문자열을 datetime 객체로 변환해야 하는 이유는 무엇입니까?

날짜로 작업해야 할 때 문자열 형식이면 작업하기가 쉽지 않습니다. 날짜/시간 형식으로 변환하면 작업이 매우 쉬워집니다. 문자열의 날짜는 일반 문자열과 같습니다. 날짜를 다루는 특별한 방법은 없습니다. 일반적인 문자열 메서드가 있을 것이므로 날짜를 사용하는 동안에는 필요하지 않습니다.

두 날짜를 비교해야 한다고 가정해 보겠습니다. 문자열 형식이면 올바르게 비교할 수 있습니다. 날짜/시간 형식인 경우 숫자와 같은 비교 연산자를 사용할 수 있습니다.

이것은 날짜/시간 형식으로 변환하면 작업이 쉬워지는 유일한 시나리오입니다. 날짜 추가, 빼기, 시간대 처리 등과 같은 많은 시나리오가 있습니다. 여기서 datetime 문자열을 datetime 개체로 변환하면 우리의 삶이 그 어느 때보다 쉬워집니다.

그런 말로 datetime 문자열을 datetime 객체로 변환하는 다양한 방법을 살펴보겠습니다. 내장 datetime 및 타사 dateutil 모듈을 사용하여 datetime 문자열을 datetime 개체로 변환합니다. datetime 모듈부터 시작해 봅시다

날짜 시간 사용

datetime은 날짜와 시간을 다루는 데 사용되는 Python의 내장 모듈입니다. 이 모듈에는 날짜와 시간을 다루는 데 도움이 되는 많은 클래스가 있습니다. 변환을 위해 datetime.datetime 클래스를 사용할 것입니다.

datetime.datetime에는 많은 메서드가 있습니다. 우리는 변환에 도움이 될 strptime 방법에 관심이 있습니다. 확인해 봅시다.

datetime.strptime

datetime.strptime 메소드는 datetime 문자열을 datetime 객체로 변환하는 데 사용됩니다. 두 개의 문자열이 필요합니다. 하나는 datetime 문자열이고 다른 하나는 해당 datetime 문자열의 형식입니다. 그리고 datetime 객체를 반환합니다.

예를 보자

from datetime import datetime

string = "19-12-2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

2022-12-19 21:37:56

datetime 문자열을 가져와 datetime.strptime 메서드를 사용하여 datetime 개체로 변환했습니다. 메소드에 제공하는 형식이 datetime 문자열과 정확히 일치하는지 확인하십시오. 일치하지 않으면 오류 또는 잘못된 출력이 표시될 수 있습니다.

날짜/시간 형식에 대한 일부 형식 코드를 사용했습니다. 문서의 모든 형식 코드를 참조할 수 있습니다.

datetime.strptime 메서드는 완전한 datetime을 반환합니다. 날짜와 시간을 별도로 가져오려면 datetime 객체의 날짜 시간 메서드를 사용할 수 있습니다. 코드를 보자.

from datetime import datetime

string = "19-12-2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"

## getting date separately
print("Date:", datetime.strptime(string, formatting).date())

## getting time separately
print("Time:", datetime.strptime(string, formatting).time())

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

Date: 2022-12-19
Time: 21:37:56

날짜와 시간 메서드는 각각 객체를 반환합니다. 그들은 다시 날짜와 시간에 대한 각자의 방법을 갖게 될 것입니다.

위에서 본 datetime.strptime 메서드에 대한 올바른 문자열과 형식을 제공했습니다. 올바르게 제공하지 않으면 오류가 발생합니다. 이러한 오류를 처리하는 방법을 살펴보겠습니다. 다음 코드를 실행합니다.

from datetime import datetime

string = "19:12:2022 09:37:56 PM"
formatting = "%d-%m-%Y %I:%M:%S %p"
print(datetime.strptime(string, formatting))

위의 코드는 형식이 datetime 문자열과 일치하지 않기 때문에 오류를 발생시킵니다. 이러한 종류의 오류를 처리하기 위해 Python의 try-except를 사용할 수 있습니다. 그것을 추가합시다.

from datetime import datetime

try:
    string = "19:12:2022 09:37:56 PM"
    formatting = "%d-%m-%Y %I:%M:%S %p"
    print(datetime.strptime(string, formatting))
except ValueError as error:
    print(error)

이제 코드를 다시 실행합니다. 코드를 깨지 않고 다음 오류 메시지가 표시됩니다.

time data '19:12:2022 09:37:56 PM' does not match format '%d-%m-%Y %I:%M:%S %p'

유사하게 앞으로 나올 parser.parse 메소드에 대해 try-except를 추가할 수도 있습니다. 중간에 코드가 깨지는 것을 방지하는 데 도움이 됩니다. 이것은 이 자습서 컨텍스트와 특별히 관련이 없지만 코드에서 사용하도록 상기시켜 줍니다.

이것이 datetime 모듈의 전부입니다. 다음 모듈 dateutil로 이동합시다.

dateutil 사용

dateutil 모듈은 datetime 모듈에 대한 확장을 제공합니다. 사용하기 쉬운 많은 방법으로 날짜와 시간 작업을 훨씬 쉽게 만듭니다. 다음 명령으로 모듈을 설치해 봅시다.

pip install python-dateutil

관심 있는 메서드는 dateutil.parser.parse입니다. datetime 문자열을 datetime 객체로 변환하는 방법을 살펴보겠습니다.

파서.파스

parser.parse 메서드는 datetime 문자열을 가져와 각각의 datetime 개체 형식으로 변환합니다. 이 메서드에 대한 서식을 제공할 필요가 없습니다. 주어진 datetime 문자열을 datetime 객체로 자동 변환합니다. 예를 보겠습니다.

from dateutil import parser

string = "19-12-2022 09:37:56 PM"
print(parser.parse(string))

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

2022-12-19 21:37:56

datetime 문자열은 parser.parse 메서드가 허용하는 특정 형식이어야 합니다. datetime 문자열 형식이 원하는 형식이 아닌 경우 오류가 발생합니다. 자동 변환을 위해 허용되는 모든 날짜/시간 문자열 형식을 확인할 수 있습니다.

parser.parse 메서드는 datetime 객체를 반환하므로 datetime 모듈에서 본 것처럼 날짜 및 시간 객체에 개별적으로 액세스할 수 있습니다. 코드를 보자.

from dateutil import parser

string = "19-12-2022 09:37:56 PM"
print("Date:", parser.parse(string).date())
print("Time:", parser.parse(string).time())

위의 코드를 실행하면 아래 출력을 볼 수 있습니다.

Date: 2022-12-19
Time: 21:37:56

보시다시피 dateutil을 사용하면 날짜와 시간을 비교적 쉽게 다룰 수 있습니다. 문서에서 모듈을 탐색할 수 있습니다.

결론

내장 모듈 하나와 타사 모듈 하나를 사용하여 datetime 문자열을 DateTime 객체로 변환했습니다. datetime 문자열을 datetime 및 dateutil 모듈과 유사한 DateTime 객체로 변환할 수 있는 time이라는 또 다른 내장 모듈이 있습니다. 직접 해보십시오. 이미 다른 모듈로 비슷한 일을 해봤기 때문에 어렵지 않을 것입니다.

동일한 작업을 수행할 수 있는 더 많은 라이브러리가 있을 수 있습니다. 사물 자습서에서 사용한 모듈은 표준이며 널리 사용됩니다. 다른 모듈에 대해 자세히 알아보고 가장 적합한 모듈을 선택할 수 있습니다.

파이썬에서 시차를 계산하는 방법을 탐색할 수도 있습니다.

행복한 코딩 🙂