首先来看看这个bug出现的现象:
如上图所示,小安派上显示的时间是30点,这个显示的时间显然是有问题的。那么我们就来打开源码来挖一挖这个bug.
AiPi-DSL_Dashboard的源码在/AiPi-Open-Kits/AiPi-DSL_Dashboard路径下的。
考虑到这个显示的错误肯定是时间获取哪里的问题。直接从lvgl的组件里面找到显示时间的地方,然后顺腾摸瓜找到显示的时间是怎么获取到的。
发现,时间是通过http请求来获取的时间的。然而获取到的时间是GMT时间,而且我们是需要的GMT+8时区的。但是代码中是这样写的:
看到这里bug的原因就很清楚了。就是拿到GTM时间之后直接就在小时上加了8,这显然是没有考虑进。
bug源头找到了,那么解决它也就变的非常简单了。
|