如何使tmux在不同时区显示时间

rks*_*rks 4 datetime tmux

点击<tmuxPrefix> + t会在我的服务器上显示时间,但我希望它显示当前时区的时间而不是服务器的时区.

当我想在当前时区的状态栏中显示时间时,我遇到了同样的问题.我可以使用以下命令部分修复它

设置-g status-right'#(TZ ="Asia/Kolkata"date)'

但是当我在状态中使用%H,%M,%S等修饰符时

set -g status-left'%H:%M:%S'

它最终显示服务器时区的时间.我用TZ ="Asia/Kolkata"更新了我的.bashrc.当在bash中运行time命令时,这给了我正确时区的时间,但它似乎没有在tmux中使用变量.

任何人都可以告诉我如何解决它?

小智 8

对于问题的第二部分,您可以使用:

set -g status-right '#(TZ="Asia/Kolkata" date +%%H:%%M:%%S)'
Run Code Online (Sandbox Code Playgroud)


小智 5

我所做的是为我的用户设置时区。它在 tmux 之外工作,它将翻译任何显示日期和时间的内容,例如 'ls' 的输出。

编辑您的 ~/.profile 并设置 TZ 变量,例如:

export TZ=/usr/share/zoneinfo/US/Pacific
Run Code Online (Sandbox Code Playgroud)

您还可以让 ssh 自动发送您当前的时区。确保您的笔记本电脑的 ~/.profile 中有 TZ,然后通过将其添加到 ~/.ssh/config 来指示 ssh 发送它

SendEnv TZ
Run Code Online (Sandbox Code Playgroud)

远程服务器必须配置为接受它,如果它不起作用,请确保它在 /etc/ssh/sshd_config 中有这个

AcceptEnv LANG LC_* TZ
Run Code Online (Sandbox Code Playgroud)