鹅厂微信程序员,快来领bug了!
大家好,我是轩辕。
前几天,我在一个微信群里,看到了一个bug:
PC版本的微信,消息时间居然出现了1970年!1970那会儿还没微信呢难道是我穿越了吗?
我相信关注轩辕这个公众号的大都是程序员,程序员应该一眼能够看出问题出在哪里。
计算机领域中有一个重要的概念:UNIX时间戳。
这个时间戳是一个整数,表示的就是从1970年1月1日(UTC/GMT的00:00:00)开始到现在所经过的秒数。
我们在编程的时候,经常需要用到时间,比如获取当前的时间,基本上所有编程语言都有与时间相关的函数。
而这些函数获取的基本上都是这个UNIX时间戳,然后再通过一些其他函数来把这个时间戳转换成一个年月日时分秒的可读时间字符串。
比如时间戳是0,就表示的就是1970-01-01 00:00:00
。
而我国用的北京时间是位于东八区的区时,所以当时间戳是0的时候,代表的就是北京时间:1970-01-01 08:00:00
所以上面的这个bug,盲猜一波就是本来该显示在那个位置的时间字段,不知道因为什么处理原因,变成了0,最后转换成字符串后就显示出了1970年。
我曾经在工作中也遇到过类似的问题,有一次测试反馈,产品的界面上展示的某一列时间字段,全部变成了1970年,我一看马上查数据库,果然,这一列字段都变成了0。
关于微信PC端的bug还不少,我三年前就写过一篇:
除了这两个,最近我在逛某论坛的时候,又又又发现了一个:
点击订阅号的时候,好家伙,右边窗口直接把源代码都给爆了出来!而且透过爆出来的源码,你还能看到一些额外的信息。
看来只要是人写的代码都会有bug,大厂的程序员也不能例外。像微信这样功能复杂的软件,有bug也是在所难免的。
最后,关于1970年这个bug,你觉得应该客户端背锅,还是服务端背锅,还是测试背锅呢?评论区说说你的看法。