背景介绍
一般某张表里面的数据,需要对外/对下游提供接口进行获取的时候,基本上会设计一系列的接口,其中可能就包括按主键分页查询、按更新时间查增量数据等。如果表里面涉及到时间字段,比如updateTime,并且业务涉及到多个国家的时候,可能会将时间转为0时区进行存储入库。这样的话,也是为了后续在其他地方展示时间的时候,能根据当地的时区做对应的处理。
接下来分享一下今天自己在测一个接口的时候忽略的一个小细节
假如我现在要测试一个按照指定updateTime的时间戳获取增量数据的接口,其中的一个测试场景是:从表里面找到updateTime时间最大的一条记录,然后将这个时间转成时间戳去调用接口,检查返回的数据的更新时间是否>=传入的时间戳对应的时间。
假设数据库找到的时间是2022-08-04 01:11:30,然后再网上找了一个时间戳转换工具,问题就出现在这个我找的转换工具上面:
我拿着这个网址转换的北京时间的时间戳去跟数据库里面的数据对比,实际上是错误的,应该将对应的时间转为0时区的时间戳,可以用下面的地址转换:https://www.baidufe.com/fehelper/timestamp/index.html
或者,需要在北京时间的时间戳上再加上8小时的时间差,也就是加上8 * 3600 * 1000 毫秒。
以上呢,是今天自己在测接口的时候忽略了的一个小细节,当然,你也可以改造一下描述,改成由于类似的原因,系统中的某个功能出现了bug,从而又多了一个让你印象深刻的bug。