红联Linux门户
Linux帮助

ubuntu时区设置,tzselect报错/usr/bin/tzselect: line 171:/hom

发布时间:2015-11-14 10:45:10来源:linux网站作者:凉秋银杏叶

问题描述:

Windows宿主上安装的虚拟机Ubuntu14.0.4时间是总是和宿主机时间相差16小时,这样总是会使某些程序由于时间问题报错。


一:关于Ubuntu虚拟机上的系统时间和宿主机上时间相差16小时:

1.GMT
格林威治标准时间GMT

2.UTC
UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间)
所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。

3.PDT
PDT 是 Pacific Daylight Time 的缩写

美国夏季始于每年4月的第1个周日,
止于每年10月的最后一个周日。
夏令时比正常时间早一小时,
与PDT时间相对应的是PST , Pacific Standard Time 。 夏时制结束后就是PST

PDT与北京时间时差为-15小时

4.PST
PST
PST是太平洋标准时间(西八区),与北京时间(东八区)时差-16个小时,
也就是北京时间减去16就是PST时间。而PDT比PST早1个小时,就是说PDT与北京时间时差为-15小时

美国横跨西五区至西十区,共六个时区。每个时区对应一个标准时间,从东向西分别为东部时间(EST)(西五区时间)、中部时间(CST)(西六区时间)、山地时间(MST)(西七区时间)、太平洋时间(西部时间)(PST)(西八区时间)、阿拉斯加时间(AKST)(西九区时间)和夏威夷时间(HST)(西十区时间),按照“东早西晚”的规律,各递减一小时。

美国标准时间
 

与北京时间时差(小时)

 

HST

-18

AKST

-17

PST

-16

MST

-15

CST

-14

EST

-13

夏季始于每年4月的第1个周日,止于每年10月的最后一个周日。也称为DST: Daylight Saving Time 。

目前存在的时区有:
GMT 格林威治标准时间 GMT
UTC 全球标准时间 GMT
ECT 欧洲中部时间 GMT+1:00
EET 东欧时间 GMT+2:00
ART (阿拉伯)埃及标准时间 GMT+2:00
EAT 东非时间 GMT+3:00
MET 中东时间 GMT+3:30
NET 近东时间 GMT+4:00
PLT 巴基斯坦拉合尔时间 GMT+5:00
IST 印度标准时间 GMT+5:30
BST 孟加拉国标准时间 GMT+6:00
VST 越南标准时间 GMT+7:00
CTT 中国台湾时间 GMT+8:00
JST 日本标准时间 GMT+9:00
ACT 澳大利亚中部时间 GMT+9:30
AET 澳大利亚东部时间 GMT+10:00
SST 所罗门标准时间 GMT+11:00
NST 新西兰标准时间 GMT+12:00
MIT 中途岛时间 GMT-11:00
HST 夏威夷标准时间 GMT-10:00
AST 阿拉斯加标准时间 GMT-9:00
PST 太平洋标准时间 GMT-8:00
PNT 菲尼克斯标准时间 GMT-7:00
MST 西部山脉标准时间 GMT-7:00
CST 中部标准时间 GMT-6:00
EST 东部标准时间 GMT-5:00
IET 印第安那东部标准时间 GMT-5:00
PRT 波多黎各和美属维尔京群岛时间 GMT-4:00
CNT 加拿大纽芬兰时间 GMT-3:30
AGT 阿根廷标准时间 GMT-3:00
BET 巴西东部时间 GMT-3:00
CAT 中非时间 GMT-1:00

在Ubuntu上查看时间:

$date

Fri Nov 13 15:54:05 PST 2015

问题就是PST

只要改变这个时区成为CST(我们的当地时区)就行


二:修改时区:
方法一:

$tzselect

之后是交互式的选择配置,只需选择Asia->China就行。此时会把时区设置成东八区(对我们来说就是所谓的localtime)

这时会被提醒永久设置时区,也就是在~/.profile下添加TZ 环境变量

$vim ~/.profile

在最后添加以下这行

TZ=’Asia/Shanghai’ ; export TZ

之后再重启就能永久显示这个时区的时间。

显示系统时间的信息。

$date

方法二:

sudo tzconfig   #如果命令不存在请使用:dpkg-reconfigure tzdata

然后按照提示选择 Asia对应的序号,选完后会显示一堆新的提示—输入城市名,如Shanghai或Chongqing,最后再用 sudo date -s “” 来修改本地时间。

按照提示进行选择时区,然后:

sudo cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime


三:问题:使用tzselect报错:(引用别人)

本人使用Ubuntu14.04 X64 server当时在配置时间同步服务器(ntp)突然发现时间居然

是PDT(Pacific Daylight Time)太平洋夏季时间,这个肯定是不行,所以

就想使用tzselect更改时区。

使用命令,报错如下:

$ tzselect

/usr/bin/tzselect: line 171:/home/ubuntu/iso3166.tab: No such file or  directory

/usr/bin/tzselect: time zone files are not set up correctly

导致这个错误其实tzselect文件中有错误引起的

解决办法:

vim /usr/bin/tzselect

${TZDIR=pwd}
改为
${TZDIR=/usr/share/zoneinfo}

即可,其实这个是ubuntu14.04的一个bug,具体大家可以从官方的Ubuntu Bugs 上可以看到开源的盆友们提交的bugs.


扩展阅读:
一:虚拟机Ubuntu当启动的时间来源:

虚拟机Ubuntu启动之后时间是从虚拟机的BIOS时间读取的,而虚拟机BIOS的时间是从VMware读取的,也就是宿主机Windows的时间读取的。虚拟机BIOS的时间格式是UTC格式的,跟我们当地时间习惯慢8小时。但是这并不影响时间的正误,所谓的快慢,其实只是显示习惯上的不同,其实它们代表的是一个时间,转换一下时区(可以理解为转换一下格式就行)而已。
 

二:虚拟机 VMware上进入虚拟机Ubuntu的bios:

ubuntu时区设置,tzselect报错/usr/bin/tzselect: line 171:/hom


三:网上同步时间

1.安装ntpdate工具

# sudo apt-get install ntpdate

2.设置系统时间与网络时间同步

# ntpdate cn.pool.ntp.org

3.将系统时间写入硬件时间

# hwclock -w

这里公布2个NTP服务器地址:

cn.pool.ntp.org

ntp.api.bz

ntp.ubuntu.com


Ubuntu linaro(Lubuntu)修改系统时区(Cubieboard CC-A80修改系:http://www.linuxdiyf.com/linux/15532.html

Ubuntu中跟踪多个时区的简捷方法:http://www.linuxdiyf.com/linux/8243.html

Unix and Linux修改时区方法:http://www.linuxdiyf.com/linux/4108.html

【香蕉派Fedora系统设置】七、Fedora时区设置:http://www.linuxdiyf.com/linux/13303.html