Linux笔记:设置系统时区
周末稍稍写点东西吧,以作备忘,聊胜于无。
由于项目原因,需要更改一个嵌入式Linux系统上的时区,一般来讲,时区都是直接UTC时间的,比如执行date命令显示:
[root@GM]# date
Sat Apr 16 09:40:57 UTC 2016
我们得想办法设置成为东八区即北京时间(CST),需要的结果例如:
junyu@ubuntu:~/test$ date
Sat Apr 16 17:22:03 CST 2016
而我们开发板上的嵌入式Linux是UTC的,网上搜索了一下如何设置时区,有说使用tzselect的,有说使用zoneinfo文件的,有说环境变量的,方法很多,然后能在嵌入式开发板上使用的却不多,因为在编译系统的时候没有把这么多的工具和功能编译进去。经过一番查找,找着了一种有效方法,仅需两步,记录下来。
1.首先,拷贝时区文件。在一台ubuntu或者其他linux的PC主机上,将/usr/share/zoneinfo
的文件拷贝到嵌入式目标主机上,当然,并不需要全部拷贝上去,因为有好几MB的大小,这个大小对于嵌入式系统来说已经相当庞大了;由于我们需要的是北京时间,所以只将文件/usr/share/zoneinfo/Asia/Shanghai
拷贝至嵌入式系统同样的位置中,本来想找Asia/Beijing的,发现找不到,但效果是一样的;使用tftp等工具去拷贝都行,嵌入式系统上没有对应文件夹的话就自己创建。
2.然后,创建localtime符号链接文件。在嵌入式Linux系统中创建一个链接文件,注意文件位置,链到刚才Shanghai
那个文件,执行命令:
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如此一来,就可将时区设置为localtime指定的,也即东八区时间了。
[root@GM]# date
Sat Apr 16 17:44:03 CST 2016