當接口請求體里的日期格式跟web頁面日期格式不一致時,該如何處理呢?


    首先引入Unix紀元時間戳的概念:即格林威治時間(GMT,Greenwich Mean Time)1970年1月1日00:00:00,到當前時間的秒數。單位為秒(s)。

    那么當前時間的Unix紀元時間戳在python中怎么表達的呢?先看看如下案例:

     上面我們看到這個日期框里面輸入的值為日期格式(2019-10-19 23:59),輸入參數后我們點擊“發布個人作業”按鈕后,通過F12查看到這個發布作業的接口的請求參數如下圖:

 

     發現endtime這個值跟我們前台傳入的值不一樣,這里它就用到了Unix紀元時間戳的表達方式,我們在做接口測試的時候,遇到這個問題該如何解決呢?

     在python里,我們引入time和datetime模塊,它們都是內置模塊,無需安裝

    問題思考:1.如何將Unix紀元時間戳轉換為日期格式?

                    2.如何將日期格式轉換為Unix紀元時間戳?

    通過以下代碼演示如何轉換:

    1.將Unix紀元時間戳轉換為日期格式,使用datetime.fromtimestamp()方法

import time
from datetime import datetime

# Unix紀元時間戳轉換為datetime日期格式
now_time = time.time()

date_now_time = datetime.fromtimestamp(now_time)

str_now_time = datetime.strftime(date_now_time, "%Y-%m-%d %H:%M:%S")
print(str_now_time, type(str_now_time))

     2.將日期格式轉換為Unix紀元時間戳,使用datetime.timestamp()方法

from datetime import datetime

# datetime日期格式轉換為Unix紀元時間戳
now_time = datetime.now()

datetime_after_seven_day = round(datetime.timestamp(now_time))
print(datetime_after_seven_day, type(datetime_after_seven_day))

     案例上的日期我們不能輸入當前日期,必須要填入未來的日期,這個又該如何處理呢?datetime.datetime格式的數據可以通過datetime.timedelta()進行日期的加減操作,假如我們要將當前的日期加上7天,使用如下方法即可實現:

from datetime import datetime, timedelta

# datetime日期格式轉換為Unix紀元時間戳
now_time = datetime.now()
print(now_time, type(now_time))

after_seven_day = now_time + timedelta(days=7)
print(after_seven_day, type(after_seven_day))

datetime_after_seven_day = round(datetime.timestamp(after_seven_day))
print(datetime_after_seven_day, type(datetime_after_seven_day))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM