2016-06-10 2 views
3

"datetime"모듈을 사용 중이고 의 두 날짜 간의 차이점을 해결하려고합니다. 여기에 내가 사용하고 코드는 객체 sub.created_utc (A POSIX 타임 스탬프, 또는 유닉스 timestap) 도착 그 전에 다른 코드가오고,이다 :오늘 날짜와 이전 날짜 사이의 날짜 차이 가져 오기

1440736746.0 
2015-08-28 04:39:06 
287 days, 16:47:41.560711 
: 여기

import datetime 

date = datetime.datetime.utcfromtimestamp(sub.created_utc); 
print(sub.created_utc); 
print(date); 
print(datetime.datetime.now() - date); 

및 출력입니다

제 질문은, 어떻게 287 days을 얻을 수 있습니까 (아니면 그냥 287, 나는 상관 없습니다). 나는 그 부분을 추출하기 위해 정규 표현식을 사용할 수 있다는 것을 알고 있지만 그것을 수행하는 더 확실한 방법이 있습니까?

도움 주셔서 감사합니다. 당신이 내가 제공 할 수있는 전체 코드를 제공하기 원한다면, 필요할 것이라고 생각하지 않을 것이다. 당신이 날짜를 빼되면

+0

http://stackoverflow.com/questions/441147/how-can-i-subtract-a-day-from-a : 그것은 과거의 유닉스 시간이 주어진 일의 시간 차이를 찾을 수 있습니다 -python-date? rq = 1 –

답변

4

, 당신은 datetime.timedelta 개체를 얻을, 당신은 직접 속성에 액세스 할 수 있습니다 :

import datetime 

d1 = datetime.datetime.utcfromtimestamp(sub.created_utc) 
print(sub.created_utc) 
print(d1) 
result = datetime.datetime.utcnow() - d1 
print(result.days) 

파이썬 문 ;로 끝나지 않는다 date은 내장 라이브러리의 이름입니다. 그래서 코드에서 사용하지 않는 것이 가장 좋습니다.

+0

감사합니다. 또한 세미콜론은 JS와 PHP 개발을위한 습관입니다. 오류를 발생 시키거나 프로그램을 느리게하는 것 같지 않으므로 얼마나 나쁜가? –

+0

[Python 스타일 가이드] (https://www.python.org/dev/peps/pep-0008/)를 참조하십시오. –

+0

@MatthewMob : 관련 없음 : 여기에'now()'가 아니라'utcnow()'를 사용해야합니다. – jfs

-1

datetime.datetime.now() - date 

timedelta 개체를 얻을 수 있습니다. 그것은 days 또는 seconds 같은 특성을가 등

0

답변 파이썬의 날짜 모듈은 timedelta라는 함수를 가지고있다

. MATHS와 GREEK의 델타는 차이를 의미합니다. 예를 들어

a = 1 
b = 2 
delta = b-a 

그래서 당신의 질문에 응답에 대한 당신이 작성해야합니다 : delta_days 당신은 빼기해야 할 일이

from datetime import date, timedelta 
d = date.today() - timedelta(days=delta_days) 

.

0

datetime으로 변환 할 필요가없는 경우 time.time()을 사용하여 현재 유닉스 시간을 가져올 수 있습니다.

import time 

DAY = 86400 # POSIX day - the exact value 
days_ago = (time.time() - sub.created_utc) // DAY 
관련 문제