Ubuntu

真棒:時區不正確

  • January 6, 2013

通常,我通過更改 .bashrc 文件來設置我的電腦時鐘的時區,TZ='America/Los_Angeles'; export TZ例如,每當date呼叫時,都會返回正確時區中的正確時間。然而,在探索了 awesome 之後,似乎echo $TZ在 awesome 中執行會返回一些東西,而不是echo $TZ在我自己的終端中執行時。

根據 lua repl 的任何實例,echo $TZ似乎也返回了正確的時區(根據 .bashrc)。

我將如何在程序之間同步時區?

您的問題是您沒有TZ在正確的文件中定義環境變數。~/.bashrc是互動式 shell 的配置文件。它是您希望在互動式 shell 中擁有的別名、鍵綁定和其他東西的地方。雖然您可以在那裡定義一個環境變數,但這個變數只會在從互動式 shell 啟動的程序中設置。這排除了您的視窗管理器和由視窗管理器啟動的任何程序。

因此,請在適當的位置定義環境變數。對於非圖形登錄,正確的位置是~/.profile. 當您以圖形模式登錄時,正確的位置取決於您的發行版、您的顯示管理器以及您的會話或視窗管理器。在 Ubuntu 上,我相信所有顯示管理器也都設置為讀取~/.profile。所以~/.profile.

這個話題已經出現過很多次了——請參閱是否有一個所有 shell 都可以讀取的“.bashrc”等效文件?

在您的情況下,另一種可能性是在您的 Awesome 配置文件 ( os.setenv('TZ', 'America/Los_Angeles')) 中定義環境變數。如果您想在不註銷並重新登錄的情況下更改時區(如果您帶著筆記型電腦旅行),那麼 Awesome 將是正確的選擇。

引用自:https://unix.stackexchange.com/questions/60458