2016-09-21 3 views
0

현재 직장에서 함수를 자동화하는 스크립트를 작성하려고하지만 파이썬에 익숙하지 않습니다. 나는 XML 덤프를 가져 와서 특정 항목의 날짜를 비교하여 시간이 경과했는지 여부를 확인하려고합니다. 예를 들어Python 날짜 비교 문자열 출력/형식

<3-letter Month> <DD> <HH:MM:SS> <YYYY> <3-letter Timezone> 

: : 그 원시 형태의 문자열을 구문 분석 한

May 14 20:11:20 2014 GMT 

, 어떻게 든 그것을 비교해야

날짜는 주어진 특정 형식으로되어 시간이 경과했는지 여부를 알아 내기위한 현재 시간. 즉, 필자는 필자가 텍스트를 포맷하거나 파이썬에서 올바른 마스크/시간 포맷을 선택하는 방법을 알아 내는데 어려움을 겪고있다.

나는 같은 기본 형식의 다양한 변화로 장난 봤는데 : 트림

if(trimmed < time.strftime("%x")): 

는 깨끗한 날짜/시간 문자열입니다. 시간은 에서 가져 오기 시간에서 파생됩니다.

이 문제를 해결할 수있는 간단한 방법이 있습니까, 아니면 형식 변환 등을 파헤쳐 야합니까? 나는 위의 시도가 단순하다는 것을 알고 있지만 파이썬에 대해서는 아직 아주 익숙하지 않습니다. 시간과 인내심에 감사드립니다!

+0

'자르기'란 무엇입니까? 'time'이 실제 시간 값을 가지고 있다면, 당신이 파싱 한 것에서 시간 값을 만들고, 그것을'time'과 비교해보십시오. –

+0

아, 죄송합니다! 태그가없는 형식의 날짜/시간 항목이 제거됩니다. 시간은 표준 라이브러리 시간에서 직접 파생됩니다. 그에 따라 편집하겠습니다. –

답변

1

gmtime (GMT 시간의 경우), mktime 및 datetime의 조합을 사용해야합니다.

from time import gmtime,mktime 
from datetime import datetime 

s = "May 14 20:11:20 2014 GMT" 
f = "%b %d %H:%M:%S %Y GMT" 
dt = datetime.strptime(s, f) 
gmt = datetime.fromtimestamp(mktime(gmtime())) 
if dt<gmt: 
    print(dt) 
else: 
    print(gmt) 
+0

더 많은 유연성을 위해 'GMT'대신 % Z를 사용할 수 있습니다. –

+0

명확히하기 위해 dt는 새로 포맷 된 날짜 시간 문자열이고 gmt는 신기원에서 dt-right까지의 상대 시간입니까? –

+0

필자는 출력을 위해 피상적 인 것들을 바 꾸었습니다. 그것의 기능적으로 정확하게 내가 찾고 있었던 것! –