2017-05-24 55 views
0

嗨我有兩次稍微不同的格式,我需要找出差異。Python3中不同時間格式的時差

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

如果他們:第一次是從ISO 8601日期使用dateutil.parser

我不知道我需要做的,把它解析爲相同的格式,但我的兩個日期被解析都是日期時間格式,我可以從另一箇中減去一個,所以我需要將兩個毫秒關掉(因爲這與我無關),並告訴python新的字符串都是日期時間?

回答

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,格式)

還記得你可以擺脫你不想要的元素在你的日期(象毫秒)當你聲明在指定的日期,如

類datetime.datetime(年,月,日,小時= 0,分= 0,第二= 0, 微秒= 0,tzinfo =無,*,關於這一主題倍= 0)

欲瞭解更多您可以隨時閱讀python文檔,你可以找到我只給你更多的在這裏同樣的信息: https://docs.python.org/3/library/datetime.html

希望它幫助。