[编程笔记] 系统日期格式引起的bug

    系统获取的日期格式不对,导致程序出现异常,出现过多次了,这里记录一下。

    起因是测试说某个跟日期相关的活动,在他环境里失效,而我们开发本地测试了多遍都是正常的,这就很奇怪了,有种想给他重装系统的念头,哈哈。

    经过一系列的分析和排查,发现是他本地系统设置的日期格式和我们不一样导致的:

     带星期了。 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”。

    当然,取时间部分有更合适的方法,这里不做过多说明,而是强调我们可以在获取当前系统时间时,根据自己的需要指定一下格式,避免在不同的人电脑上出现不一样的结果,从而引发问题:

    客户的环境是千奇百怪的,一行代码实现功能,百行代码防“***民”,还是要严谨。

    很细节的一个问题,但是如果不是刚好有同事系统是那个格式,等发到生产环境有客户遇到的话,那可能就事大了。

posted @   顾星河  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版

整理中...

点击右上角即可分享
微信分享提示