系统获取的日期格式不对,导致程序出现异常,出现过多次了,这里记录一下。
起因是测试说某个跟日期相关的活动,在他环境里失效,而我们开发本地测试了多遍都是正常的,这就很奇怪了,有种想给他重装系统的念头,哈哈。
经过一系列的分析和排查,发现是他本地系统设置的日期格式和我们不一样导致的:
带星期了。 Windows默认是年月日时分秒,yyyy/MM/dd HH:mm:ss这种,但是可以改成yyyy/MM/dd dddd HH:mm:ss,手动改系统设置,或者某些软件修改成这种。
那么如果我们编程时,不加注意,就容易产生问题,比如我们这么写代码:
多数时候我们以为输出是yyyy/MM/dd HH:mm:ss,其实不是,具体输出什么跟你设置的系统格式有关,系统设置的是yyyy/MM/dd dddd HH:mm:ss,那么输出的日期里就带星期,有些地方截取字符串不当,又没有做异常处理,可能就报错了。
比如返回的是2024/11/26 星期二 09:09:09,如果写代码不规范,根据空格去截取后面的时分秒,按yyyy/MM/dd HH:mm:ss去设想,Split(' ')[1]这么写,那么截取的就是“星期二”,而不是“09:09:09”。
当然,取时间部分有更合适的方法,这里不做过多说明,而是强调我们可以在获取当前系统时间时,根据自己的需要指定一下格式,避免在不同的人电脑上出现不一样的结果,从而引发问题:
客户的环境是千奇百怪的,一行代码实现功能,百行代码防“***民”,还是要严谨。
很细节的一个问题,但是如果不是刚好有同事系统是那个格式,等发到生产环境有客户遇到的话,那可能就事大了。
标签:编程,MM,dd,09,笔记,yyyy,mm,HH,bug From: https://www.cnblogs.com/sunshine-wy/p/18569381