Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python上的日期时间差异_Python_Date_Datetime - Fatal编程技术网

python上的日期时间差异

python上的日期时间差异,python,date,datetime,Python,Date,Datetime,我有DateTime,从字符串转换成IS0格式的例子ISO日期(“2016-06-24T09:07:31.097Z”) 我想使用python找出它们之间的差异,因此我做了以下工作: string_older = "2016-05-18T20:53:43.776456" string_young = "2016-05-16T20:53:43.776456" datetime_older = datetime.datetime.strptime(string_older, "%Y-%m-%dT%H:

我有DateTime,从字符串转换成IS0格式的例子<代码>ISO日期(“2016-06-24T09:07:31.097Z”)

我想使用python找出它们之间的差异,因此我做了以下工作:

string_older = "2016-05-18T20:53:43.776456"
string_young = "2016-05-16T20:53:43.776456"
datetime_older = datetime.datetime.strptime(string_older, "%Y-%m-%dT%H:%M:%S.%f") //date on ISO format
datetime_young = datetime.datetime.strptime(string_young, "%Y-%m-%dT%H:%M:%S.%f") //date on ISO format
a = time.mktime(datetime_older)
b = time.mktime(datetime_young)
diff = a - b
seconds = int(diff) % 60
但这会产生错误
TypeError:参数必须是9项序列,而不是datetime.datetime
在这一行
time.mktime(datetime\u older)

我不知道怎么修?请提供帮助。

同时减去
datetime
s将得到一个值。要获得以秒表示的差异,请调用其方法

时间增量。总秒数()

返回持续时间中包含的总秒数。等效于(td.微秒+(td.秒+td.天*24*3600)*10**6)/10**6在启用真除法的情况下计算得出


减去这两个
datetime
s将得到一个值。要获得以秒表示的差异,请调用其方法

时间增量。总秒数()

返回持续时间中包含的总秒数。等效于(td.微秒+(td.秒+td.天*24*3600)*10**6)/10**6在启用真除法的情况下计算得出


我想你需要这个;没有必要使用time.mktime(),因为您已经有了datetimes

import time, datetime
string_older = "2016-05-18T20:53:43.776456"
string_young = "2016-05-16T20:53:43.776456"

datetime_older = datetime.datetime.strptime(string_older, "%Y-%m-  %dT%H:%M:%S.%f")
datetime_young = datetime.datetime.strptime(string_young, "%Y-%m-%dT%H:%M:%S.%f")

c = datetime_older - datetime_young
print(divmod(c.days * 86400 + c.seconds, 60) ) # minutes, seconds

我想你需要这个;没有必要使用time.mktime(),因为您已经有了datetimes

import time, datetime
string_older = "2016-05-18T20:53:43.776456"
string_young = "2016-05-16T20:53:43.776456"

datetime_older = datetime.datetime.strptime(string_older, "%Y-%m-  %dT%H:%M:%S.%f")
datetime_young = datetime.datetime.strptime(string_young, "%Y-%m-%dT%H:%M:%S.%f")

c = datetime_older - datetime_young
print(divmod(c.days * 86400 + c.seconds, 60) ) # minutes, seconds

我完全不明白你为什么要调用
time.mktime
。你已经有日期时间了,你可以把它们相互减去。我想把它转换成时间,然后再减去,在秒上求差,我不知道我可以直接减去日期。我根本不明白你为什么要调用
time.mktime
。你已经有日期时间了,你可以把它们相互减去。我想把它转换成时间,然后再减去,在秒上求差,我不知道我可以直接减去日期为什么不使用总秒?(见我的答案)我们可以使用总秒数。这只是做同样事情的另一种方式。为什么不使用total_seconds?(见我的答案)我们可以使用总秒数。这只是做同样事情的另一种方式。