Python程序:查找两个时间戳之间的差异
假设我们有两个按照以下格式表示的时间:”Day dd Mon yyyy hh:mm:ss +/-xxxx”,其中Day是三个大写字母表示的日,Mon是三个字母表示的月份,最后的+或-xxxx表示时区,例如+0530表示比格林尼治标准时间快5小时30分钟(dd、hh、mm、ss等格式都是自说明的)。我们需要找到两个时间戳之间的绝对时间差(单位为秒)。
为了使用Python解决这个问题,我们将使用datetime库。有一个名为strptime()的函数,它将转换格式化的字符串日期为datetime对象。其中有一些格式说明符如下所示:
- %a表示三个字母格式的日
- %d表示数值格式的日
- %b表示三个字母格式的月份
- %Y表示yyyy格式的年份
- %H表示hh格式的小时
- %M表示mm格式的分钟数
- %S表示ss格式的秒数
- %z表示+/- xxxx格式的时区
因此,如果输入如下:t1 = “Thu 15 Jul 2021 15:10:17 +0530” t2 = “Thu 15 Jul 2021 20:25:29 +0720″,那么输出将为12312。
为了解决这个问题,我们将按照以下步骤进行操作:
- t1:将第一个时间从给定的字符串转换为上述格式
- t2:将第二个时间从给定的字符串转换为上述格式
- 返回t1和t2之间的时间差,单位为秒
示例
让我们看看下面的实现,以更好地理解-
from datetime import datetime
def solve(t1, t2):
t1 = datetime.strptime(t1, "%a %d %b %Y %H:%M:%S %z")
t2 = datetime.strptime(t2, "%a %d %b %Y %H:%M:%S %z")
return abs(int((t1-t2).total_seconds()))
t1 = "Thu 15 Jul 2021 15:10:17 +0530"
t2 = "Thu 15 Jul 2021 20:25:29 +0720"
print(solve(t1, t2))
输入
"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"
输出
12312