2017-11-02 7 views
1

"만료 된 날짜"가 현재 날짜의 3 일을 문자열 형식으로 사용해야하는 코드 요구 사항이 있습니다. 다음은datetime의 요일을 추가하고 파이썬에서 문자열 형식으로 변환

import datetime 
now = datetime.datetime.utcnow() #Today's date is '2/11/2017' 
expires_at = '%d/%d/%d' % (now.day + 3, now.month, now.year) 

이 완벽하게 작동, 내 코드와 출력은 "2017년 5월 11일는"예상되는할지 유사하다. 그러나 현재 날짜가 28 일 또는 29 일이면이 코드가 중단됩니다. 파이썬은 어떻게해서든지 달의 1 일로 건너 뛰는 대신 33 일에 날짜를 추가했습니다. 내 연구를 수행하고 파이썬 콘솔 (다음)에서 작동하지만 Selenium Web Driver 및 Pycharm에서 실행되지 않는 솔루션을 발견했습니다. pycharm에서 동일한 코드를 실행하면

>>> from datetime import datetime, timedelta 
>>> m = '29/10/2017' 
>>> date = datetime.strptime(m, "%d/%m/%Y") 
>>> modified_date = date + timedelta(days=3) 
>>> datetime.strftime(modified_date, "%d/%m/%Y") 
'01/11/2017' 

다음과 같은 오류가 발생합니다

Error 
Traceback (most recent call last): 
    date = datetime.strptime(m, "%d/%m/%Y") 
Exception: module 'datetime' has no attribute 'strptime' 

어떤 도움에 감사드립니다. 누군가가 궁금하다면 파이썬 3.6.1을 사용하고 있습니다. 아마 아주 작은 것 (가능한 해결책 2 가지지만 그 중 아무 것도 작동하지 않음)일지도 모르겠지만이 코드를 3 일 동안 붙잡고 올바른 해결책을 찾을 수 없습니다.

+0

메소드 이름의 차이점을 확인하십시오. strptime vs strftime –

답변

0

, 난 내가 "날짜 가져 오기 날짜에서, timedelta"과 "수입 날짜"모두 추가 된 몇 가지 문제 1)을 처리했다 알아 낸 함께. 그 중 하나를 제거하면 내 문제가 대부분 해결되었습니다. 2) "날짜 가져 오기 날짜에서"를 사용하여 현재 날짜를 얻으려면, 내가 그랬어 다음

from datetime import datetime 
now = "{:%Y_%m_%d}".format(datetime.now()) 
print(now) 

I는 얻을 출력을, 내가 한 번만 '날짜'를 지정하는 데 필요한

'2017_11_03' #today's date 

, 즉 "datetime.now()"클래스에서 "datetime"모듈을 가져 오는 중입니다.

1

당신은 당신의 코드에서 다음이없는 있는지 확인하십시오 당신이 그렇게한다면, 그것은 충돌합니다

import datetime 

. 마찬가지로 : 이전 포스터의 도움으로

from datetime import datetime, timedelta 
import datetime 
m = '29/10/2017' 
date = datetime.strptime(m, "%d/%m/%Y")` 


Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: module 'datetime' has no attribute 'strptime' 
+0

답장을 보내 주셔서 감사합니다. 내 코드에서 두 줄을 모두 가질 수 있습니다. 확인을 다시해야합니다. – Bubbles