当接口请求体里的日期格式跟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))

posted @ 2019-10-12 10:56  小公瑾  阅读(1461)  评论(0编辑  收藏  举报