嗨我有兩次稍微不同的格式,我需要找出差異。Python3中不同時間格式的時差
2017-05-24 15:40:00+00:00
2017-05-24 14:23:44.995015
如果他們:第一次是從ISO 8601日期使用dateutil.parser
我不知道我需要做的,把它解析爲相同的格式,但我的兩個日期被解析都是日期時間格式,我可以從另一箇中減去一個,所以我需要將兩個毫秒關掉(因爲這與我無關),並告訴python新的字符串都是日期時間?
嗨我有兩次稍微不同的格式,我需要找出差異。Python3中不同時間格式的時差
2017-05-24 15:40:00+00:00
2017-05-24 14:23:44.995015
如果他們:第一次是從ISO 8601日期使用dateutil.parser
我不知道我需要做的,把它解析爲相同的格式,但我的兩個日期被解析都是日期時間格式,我可以從另一箇中減去一個,所以我需要將兩個毫秒關掉(因爲這與我無關),並告訴python新的字符串都是日期時間?
由於您已經在使用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)
以刪除微秒。
你可以改變第二日期時間(即時間戳)到第一個與此代碼:
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')
然後,就可以計算出它們之間的區別。
我希望這個幫助。問候!
也許你想用這種方法
datetime.strptime(DATE_STRING,格式)
還記得你可以擺脫你不想要的元素在你的日期(象毫秒)當你聲明在指定的日期,如
類datetime.datetime(年,月,日,小時= 0,分= 0,第二= 0, 微秒= 0,tzinfo =無,*,關於這一主題倍= 0)
欲瞭解更多您可以隨時閱讀python文檔,你可以找到我只給你更多的在這裏同樣的信息: https://docs.python.org/3/library/datetime.html
希望它幫助。