2017-05-24 15 views
0

안녕하세요 저는 두 번 약간 다른 형식으로되어있어 차이점을 해결해야합니다.Python3의 다른 시간 형식과의 시차

2017-05-24 15:40:00+00:00 
2017-05-24 14:23:44.995015 

그들이 경우 : 첫 번째는 dateutil.parser

는 내가 같은 형식으로 그들을 구문 분석 할 필요가 있지만, 내 두 날짜가 무엇인지 확실하지 않다 사용하여 ISO 8601 날짜로부터 구문 분석 둘 다 datetime 형식으로 그냥 다른 하나에서 빼기 수 있으므로 양쪽에서 밀리 초 잘라해야합니다 (내게 관련이없는 coz) 및 파이썬 새 문자열을 모두 datetimes 알려?

답변

2

이미 dateutil을 사용하고 있으므로, 시간대를 제거하거나 다른 시간대를 추가하고 빼는 것은 무엇이 문제입니까?

import dateutil.parser 

date1 = dateutil.parser.parse("2017-05-24 15:40:00+00:00").replace(tzinfo=None) 
date2 = dateutil.parser.parse("2017-05-24 14:23:44.995015") 

date_delta = date1 - date2 # 1:16:15.004985 

당신은 마이크로 초를 제거하는 날짜에 replace(microsecond=0)를 호출 할 수 있습니다.

0

는이 코드를 첫 번째로 (즉, 소인입니다) 두 번째 날짜를 변환 수 :

def convert_to_timestamp(string_date): 
    the_datetime = datetime.strptime(string_date.decode("utf-8"), "%Y%m%d.%H%M%S.%f") 
    return time.mktime(the_datetime.timetuple()) * 1e6 + the_datetime.microsecond 

또는 :

def transformTimestamps(timestamp_): 
year = timestamp_[:4] 
month = timestamp_[4:6] 
day = timestamp_[6:8] 
hour = timestamp_[9:11] 
minute = timestamp_[11:13] 
second = timestamp_[13:15] 
microsecond = timestamp_[16:22] 
myformat = year+"-"+month+"-"+day+" +hour+":"+minute+":"+second+":"+microsecond 
return datetime.strptime(myformat, '%Y-%m-%d %H:%M:%S:%f') 

그런 다음 그들 사이의 차이를 계산할 수 있습니다.

이 도움이 되었기를 바랍니다. 인사말!

0

아마이 방법을

datetime.strptime (DATE_STRING, 형식)

은 또한 당신이 (밀리 초처럼) 날짜에서 원하지 않는 요소를 제거 할 수 기억을 사용하려면 당신은 = 없음 tzinfo,

클래스 datetime.datetime (년, 월, 일, 시간 = 0 분 = 0, 두 번째 = 0, 마이크로 초 = 0과 같이 지정된 날짜를 선언 할 때 , *, 당신은 내가 여기 당신과 더 준 동일한 정보를 찾을 수 있습니다, 당신은 항상 파이썬 문서를 읽을 수있는이 주제에 대한) = 0 자세한 내용은

배 : https://docs.python.org/3/library/datetime.html

가 도움이 바랍니다.