AJAX 요청이나 IPC 메시지(nodejs에서)와 같은 네트워크 연결을 통해 보낼 때 Javascript 날짜를 Python 날짜 개체로 변환하려고 할 것입니다. 이 표현은 문자열 형식이며 원하는 형식으로 보내도록 선택할 수 있습니다. strptime 함수를 사용하여 문자열을 다시 Python 날짜 객체로 구문 분석할 수 있습니다. 날짜 및 시간 개체를 보내고 받는 ISO 8061과 같은 표준화된 방법이 있습니다. 이 경우 간단한 예를 들어보면 조금 더 이해가 쉬울 것입니다.
예시
import datetime # The string that you get from Javascript date_string = '2017-12-31' date_format = '%Y-%m-%d' try: date_obj = datetime.datetime.strptime(date_string, date_format) print(date_obj) except ValueError: print("Incorrect data format, should be YYYY-MM-DD")
출력
이 결과는 다음과 같습니다.
2017-12-31 00:00:00
다른 많은 지시문을 사용하여 날짜를 구문 분석할 수 있습니다. 다음은 strptime()의 형식 문자열이 지원하는 지시문입니다.
지시어 | 의미 |
%a | 로케일의 축약된 요일 이름입니다. |
%A | 로케일의 전체 요일 이름. |
%b | 로케일의 축약된 월 이름입니다. |
%B | 로케일의 전체 월 이름. |
%c | 로케일의 적절한 날짜 및 시간 표현. |
%d | 십진수 [01,31]로 된 월의 일. |
%H | 십진수 [00,23]의 시(24시간제). |
%I | 십진수로 표시되는 시(12시간제) [01,12]. |
%j | 10진수 [001,366]로 표시되는 일. |
%m | 십진수로 표시한 월 [01,12]. |
%M | 분은 십진수 [00,59]로 표시됩니다. |
%p | 로케일은 AM 또는 PM에 해당합니다. |
%S | 십진수 [00,61]의 초. |
%U | 10진수 [00,53]로 표시된 연도의 주 번호(일요일이 주의 첫 번째 요일)입니다. 새해 첫 번째 일요일 이전의 모든 날은 0주에 있는 것으로 간주됩니다. |
%w | 10진수로 나타낸 요일 [0(일요일),6]. |
%W | 10진수 [00,53]으로 표시된 연도의 주 번호(월요일이 주의 첫 번째 요일)입니다. 새해 첫 번째 월요일 이전의 모든 날은 0주에 있는 것으로 간주됩니다. |
%x | 로케일의 적절한 날짜 표현. |
%X | 로케일의 적절한 시간 표현. |
%y | 십진수로 세기가 없는 연도 [00,99]. |
%Y | 세기를 십진수로 표시한 연도. |
%Z | 시간대 이름(시간대가 없으면 문자 없음). |
%% | 리터럴 "%" 문자. |