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+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.