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

更新于:2021年10月12日

3K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告