我做了日期命令,它给出了以下输出
root@localhost:~$date Thu Dec 30 14:19:47 UTC 2010
root@localhost:~$date -s "12/30/2010 JST 14:19:47" Thu Dec 30 05:19:47 UTC 2010
我注意到时间变为UTC时间后9小时,以准确显示JST时间.但是你可以看到的时区仍然显示UTC.为什么显示正确的时间和不正确的时区?
谢谢
解决方法
这是因为您的系统设置为使用UTC(或没有设置时区)而不是JST. date命令将接受JST作为输入修饰符,但随后使用系统默认值显示它.如果您希望系统希望系统以JST格式显示时间,则应将时区设置为JST
删除或重命名/ etc / localtime,然后将/usr/share / zoneinfo中的相关文件链接到/ etc / localtime
cd /etc mv localtime localtime.orig ln -s /usr/share/zoneinfo/Japan /etc/localtime
编辑
回答你的评论 – 日期命令必须能够理解作为-s的日期字符串参数的一部分提供的时区信息以及如何处理它.如果您检查source code,您会发现所有常用时区缩写以及它们与GMT的偏移都已定义.然后,此信息用于正确设置时间.根据您检查的core-utils版本,您将在lib / parse-datetime.c或lib / getdate.c中找到相关信息.