1.下载tzdata和tzcode:
该软件的下载地址如下: https://www.iana.org/time-zones 下载: tzdata2019g.tar.gz和
tzcode2019g.tar.gz。 tzdata是时区信息的数据库,tzcode是时区的一些命令和用于生成时区数据库的工具。
tz数据库的生成需要一个命令,其为zic。zic是一个二进制文件,我们编译生成的能在target上运行的二进制文件,用该二进制文件生成tz数据库
2.解压tzdata和tzcode:
新建一个目录tz
把tzdata2019g.tar.gz和tzcode2019g.tar.gz,拷贝到tz目录,然后解压到当前目录
修改makefile
找到cc =cc 修改为自己的编译器
#cc= cc
cc= arm-linux-gnueabihf-gcc
CC= $(cc) -DTZDIR='"$(TZDIR)"'
AR= arm-linux-gnueabihf-ar
3编译
然后make
新建一个tzdir目录
make TOPDIR=/home/work/freescale/tzdir install
安装到tzdir目录
然后把tzdir的文件拷贝到文件系统的根目录下
4.在shell终端中导出环境变量(也可以添加到profile中):
export TZDIR="/usr/local/etc/zoneinfo"
export TZ="Asia/Shanghai"
改变时区,输入date命令验证即可!
在虚拟机上编译后 执行install好像会出错,需要把编译好的文件拷贝到arm板,自己手动install
我写了个脚本文件install.sh
#!/bin/sh
./zic -y ./yearistype -d /usr/local/etc/zoneinfo -L /dev/null africa antarctica asia australasia europe northamerica southamerica pacificnew etcetera backward systemv factory
rm -fr /usr/local/etc/zoneinfo-posix
ln -s zoneinfo /usr/local/etc/zoneinfo-posix || ./zic -y ./yearistype -d /usr/local/etc/zoneinfo-posix -L /dev/null africa antarctica asia australasia europe northamerica southamerica pacificnew etcetera backward systemv factory
./zic -y ./yearistype -d /usr/local/etc/zoneinfo-leaps -L leapseconds africa antarctica asia australasia europe northamerica southamerica pacificnew etcetera backward systemv factory
cp -f iso3166.tab zone1970.tab zone.tab /usr/local/etc/zoneinfo/.
cp tzselect zic zdump /usr/bin/.
然后按照上面的第4步就可以了。