我想获得一个系统的时区。 现在有些警告
我正在考虑使用/ etc / localtime,但有时这是一个真正的文件,有时是一个符号链接。 无论如何,我似乎无法得到parsing文件格式的描述。
有人有主意吗?
谢谢
该文件将是二进制格式的tz文件格式。 如果你知道Perl,你可以使用DateTime :: TimeZone :: Tzfile来parsing它。 如果它是一个符号链接它不应该mater因为如果它被安装,你可以按照它。
最后,如果你可以控制图像创build,我强烈build议你设置系统时间UTC。
你知道这些UNIX是什么味道吗?
除了/ etc / localtime之外,
/etc/sysconfig/clock /etc/timezone 残忍的方式….:p如果安装只读,触摸一个文件,然后… ls -lah ….
那么你将有足够的时间来创build文件。 意思是……系统的时间+/-几秒钟。
或者以某种方式尝试明确地修改某些内容,或者隐式地查看时间:>
在Linux系统上处理这个问题的一个简单方法是使用file命令;
file /etc/timezone
要么
file /etc/sysconfig/clock
然而,正如你可能正在使用UNIX系统的图像(我希望它的Solaris就像我熟悉的那样),它可能会稍有不同。
没有为你写实际的脚本,这是伪代码
get mount if mount is ext3 ... then assume linux if exists /etc/timezone then check if file is ascii or gz if ascii then cat the timezone else if exists /etc/redhat-release then assume redhat TZ = cat /etc/sysconfig/clock fi
是的,它不够优雅,但你应该得到我的漂移。 所以你可以根据挂载在操作系统上做一些假设。
这个过程对于说Solaris安装是一样的,你可以计算出文件的位置,使用file命令来确定文件types,然后从cat或者grep ^ TZ获取它的内容
希望有所帮助。
在命令行中,您可以通过运行以下方式比读取/ etc / localtime更安全:
date +%Z