더 쉬운 방법이 있어야합니다. 나는 너무 자주 새로 고쳐지기를 원하는 객체를 가지고 있으므로, 생성 된 시점을 기록하고, 현재의 타임 스탬프를 확인하고, 필요에 따라 새로 고침하고 싶다.두 날짜 간의 차이를 초 단위로 확인하려면 어떻게합니까?
datetime.datetime은 어렵다는 것을 입증했으며, 나는 ctime 라이브러리에 뛰어 들고 싶지 않습니다. 이런 종류의 일에 더 쉬운 것이 있습니까?
더 쉬운 방법이 있어야합니다. 나는 너무 자주 새로 고쳐지기를 원하는 객체를 가지고 있으므로, 생성 된 시점을 기록하고, 현재의 타임 스탬프를 확인하고, 필요에 따라 새로 고침하고 싶다.두 날짜 간의 차이를 초 단위로 확인하려면 어떻게합니까?
datetime.datetime은 어렵다는 것을 입증했으며, 나는 ctime 라이브러리에 뛰어 들고 싶지 않습니다. 이런 종류의 일에 더 쉬운 것이 있습니까?
이 같은 total_seconds
사용 : 델타의 일 회계, 당신은 더 이상 타임 스탬프 불일치를 처리 할 수
import datetime as dt
a = dt.datetime(2013,12,30,23,59,59)
b = dt.datetime(2013,12,31,23,59,59)
(b-a).total_seconds()
86400.0
을#note that seconds doesn't give you what you want:
(b-a).seconds
import time
current = time.time()
...job...
end = time.time()
diff = end - current
그런가요?
일에 대한 코드는 아래를 참조하시기 바랍니다; 우리는 두 번의 호출 날짜에 대해서는별로 신경 쓰지 않습니다. 우리는 경과 시간을 중요하게 생각합니다. 그림과 같이 원시 타임 스탬프 만 사용하십시오. –
>>> from datetime import datetime
>>> a = datetime.now()
# wait a bit
>>> b = datetime.now()
>>> d = b - a # yields a timedelta object
>>> d.seconds
7
, 당신이 만난 복잡한 또는 어색한 시나리오가 있다면, 그래서 datetime.datetime가 상당히 유용하게 찾을 수
하십시오 (7 위 조금 기다렸다 시간의 어떤 양이 될 것입니다) 저희에게 알려주십시오.
편집 : @WoLpH에 감사드립니다. 항상 빈번히 새로 고침을해야하는 것은 아닙니다. datetimes가 가까이에있을 것입니다. 당신이 알려진 두 날짜 사이의 차이를 계산하려면,
>>> a = datetime(2010, 12, 5)
>>> b = datetime(2010, 12, 7)
>>> d = b - a
>>> d.seconds
0
>>> d.days
2
>>> d.seconds + d.days * 86400
172800
대신에'd.seconds + d.days * 86400'를 돌려 주면 여러 날 동안 정확합니다;) – Wolph
일반적으로 이것은 * not correct *입니다. 'a-b * == 86282 '인 a - b == 인 경우 (즉, 결과가 음수가되도록)'a - b '를 생각해보십시오. datetime.timedelta (-1, 86276, 627665)'입니다. 올바른 방법은'timedelta.total_seconds()'를 사용하는 것입니다.하지만 py2.7 + 만 있습니다. –
사실, 그 대답은 옳지 않아 @DavidWolever 주석을 반영해야합니다. 정답은'timedelta.total_seconds()'를 사용하는 것입니다. 그에 따라 Downvoted. – astrojuanlu
우리는 total_sec onds() 파이썬 2.7 와 파이썬 2.6
import datetime
import time
def diffdates(d1, d2):
#Date format: %Y-%m-%d %H:%M:%S
return (time.mktime(time.strptime(d2,"%Y-%m-%d %H:%M:%S")) -
time.mktime(time.strptime(d1, "%Y-%m-%d %H:%M:%S")))
d1 = datetime.now()
d2 = datetime.now() + timedelta(days=1)
diff = diffdates(d1, d2)
>>> import datetime
>>> d1 = datetime.datetime.now()
>>> d2 = datetime.datetime.now()
>>> d=d2 - d1
>>> d.seconds
'메모'는 사람들이 놓칠 수있는 가장 중요한 부분입니다. 나는 그것에 또 하나의 표를 던지기를 바란다. – Dexter
내가 겉으로보기에는 ... 잘못된 결과를주는 것을 눈치 채는 때가 있습니다. 초당 2 분의 1 차이는 59.800 초입니다. 따라서 초 단위, 밀리 초 단위 또는 마이크로 초 단위와 같은 더 작은 연산의 경우 '(ba) .microseconds'를 사용하여 초 (1000000) 또는 밀리 초 (1000)가되도록 나눌 수 있습니다. –
값이 나타납니다 a와 b가 바뀌어도 항상 양수입니다. – Nickpick