linux中的locale和时区设置

比如vnpy_ctp库,它输出的stdout就是gbk编码,在默认环境下会是一堆乱码,这时就需要设置locale了。

修改/etc/locale.gen文件,取消zh_CN.UTF-8 UTF-8zh_CN.GB18030 GB18030的注释,然后执行locale-gen命令。
也可以直接添加到文件末尾。

1
2
3
4
sudo apt update 
sudo apt -y install locales
sudo echo "zh_CN.GB18030 GB18030" > /etc/locale.gen
locale-gen

又比如我们使用cron运行定时任务通常是使用北京时间,但默认的locale是UTC,不小心很容易出错。

安装tzdata包,然后创建/etc/localtime软链接到/usr/share/zoneinfo/Asia/Shanghai

1
2
sudo apt -y install tzdata 
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime