2017-10-29 11 views
0

나는 하나의 UTC datetime 문자열과 하나의 베어 타임 문자열을 갖고 싶습니다.진자가 화살표의 replace() 메서드와 동일합니까?

pointTimeString = '2017-09-08T14:55:38Z' 
startTimeString = '15:52' 

시간은 동일한 날짜에 있지만 영국 서머 타임에서가 아니라 UTC.

이 작동하지만 종류의 해키 느낌 :

import pendulum 

pointTime = pendulum.parse(pointTimeString) 
startTime = pendulum.parse(pointTimeString[0:11]+startTimeString, tz='Europe/London') 

if pointTime > startTime: 
    # Do stuff 

진자가 한 오프셋 UTC를 문제의 시간이 BST에 있음을 추론하는 날짜를 사용하여 설정 : 00. 진자 raison d'être post은 Arrow의 replace() 메서드를 문제가있는 것으로 명시 적으로 호출하지만 동등한 것은 표시되지 않습니다. 정확하게 작동하는 replace() 동등 물을 가질 수 없다는 요점은 무엇입니까? 이 경우에도 시간과 분을 다른 것으로 설정하는 동안 진자 인스턴스를 복사하는 방법이 있습니까? AttributeError: 'Pendulum' object has no attribute 'from_format'

답변

0

꽤 깔끔한 아니 내가 찾던 같이

물론
import pendulum 

pointTime = pendulum.parse(pointTimeString) 
startTime = pointTime.in_tz('Europe/London').from_format(startTimeString, "%H:%m") 

if pointTime > startTime: 
    # Do stuff 

,이 순간에 작동하지 않습니다 : 나는 이런 식으로 뭔가를 할 수 있기를 희망하고있다

하지만이 꽤 표현하고 확실히 덜 해키 느낌 :

from datetime import datetime as dt 
import pendulum 

pointDT = pendulum.parse(pointTimeString) 
startTime = dt.strptime(startTimeString, "%H:%M").time() 
startDT = pendulum.instance(dt.combine(pointDT.date(), startTime), tz="Europe/London") 

if pointDT > startDT: 
    # Do stuff 

프로젝트의 Github에서 사이트에 an issue에 대한 답변에 의해 영감을.

0

>>> import pendulum 

>>> pointTimeString = '2017-09-08T14:55:38Z' 
>>> pointTime = pendulum.parse(pointTimeString) 
>>> startTimeString = '15:52' 

startTimeString에서 단지 날짜 pendulum의 인스턴스를 만듭니다.
>>> tempTime = pendulum.parse(startTimeString) 

pointTimeStringtempTime의 요소에서 완전한 날짜를 조립합니다.

>>> startTime = pendulum.create(pointTime.year, pointTime.month, pointTime.day, tempTime.hour, tempTime.minute, 0, 0, tz=pointTime.tz) 

결과를 확인하십시오.

>>> startTime 
<Pendulum [2017-09-08T15:52:00+00:00]> 

특히 시간대가 올바르게 처리되었는지 확인하십시오.

>>> pointTime.tz 
<Timezone [+00:00]> 
>>> startTime.tz 
<Timezone [+00:00]> 
+0

제안 해 주셔서 감사합니다. [이 트릭] (https://github.com/sdispater/pendulum/issues/82#issuecomment-267826106)은 생성을 단축시킬 수 있습니다. 시간대는 실제로 질문 (UTC vs BST)과 다르지만 방법으로도 변경하기 쉽습니다. TBH, 내 독창적 인 솔루션을 더 많이 볼수록 더 깨끗하게 느껴질 것입니다. –