答案1
要回答您的问题,请使用第二个链接中的说明(此处总结)。这将更改打印或返回时间的库和实用程序的系统范围默认时区。它不会影响硬件(或虚拟机的虚拟机主机基础设施)中实时时钟的实际内容。 rtc命令用于配置硬件中存储的实际时间。如果您要在同一硬件上频繁地从 Solaris 重新启动到 Windows,并且需要确保它们都了解存储在硬件实时锁定芯片中的时间值,那么您需要担心这一点。
在 Solaris 11.2 中,您可以使用 nlsadm 实用程序来设置此项。
# date
Tuesday, December 15, 2015 08:54:04 PM UTC
# nlsadm get-timezone
timezone=UTC
# nlsadm list-timezone | grep US/Pacific
US/Pacific
# nlsadm set-timezone US/Pacific
Reading IPS package information ...
Setting SMF property timezone/localtime with value: 'US/Pacific' ...
Successfully set
# date
Tuesday, December 15, 2015 12:54:24 PM PST
您可能需要使用以下命令安装 nls-administration 软件包
# pkg install nls-administration
nlsadm 实用程序有一个手册页,它与二进制文件一起安装。这是描述该过程的文档的链接。
http://docs.oracle.com/cd/E36784_01/html/E39134/gllkr.html
在幕后,nlsadm 实用程序将使用先前答案中描述的 svccfg 命令。在这些内容的下面,/etc 中有一个用于向后兼容的符号链接。没错,它只是一直覆盖到下面。 :-)
答案2
您应该TZ=localtime
在 Solaris 11 上使用。它是指向实际时区文件的符号链接,但它允许切换时区而无需重新启动进程。
该符号链接是由svc:/system/timezone:default
SMF 服务创建的,因此只需更新其配置即可:
# svccfg -s timezone:default
svc:/system/timezone:default> setprop timezone/localtime = Europe/Moscow
svc:/system/timezone:default> end
# svcadm refresh timezone
答案3
nlsadm
还可以用于设置时区以及其他区域设置细节,例如语言和键盘。
查找时区:
Solaris11 [8]#nlsadm list-timezone | grep -i <TIME_ZONE>
设置时区:
Solaris11 [9]#nlsadm set-timezone <TIME_ZONE>