精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

linux中的時區問題到底怎么處理

倩倩 ? 作者:云平臺運維開發 ? 2019-09-28 02:56 ? 次閱讀

背景

這兩天在打docker的時候,發現自己的容器啟動之后,里面date -R的輸出時區是UTC,總是和北京時間差了8個小時。

Docker中的時區問題處理

標準鏡像

時區是UTC

查看/etc/localtime,發現默認指向的是Etc/UTC時區。而且TZ環境變量也沒有被設置。

linux中的時區問題到底是怎么處理的

實際上,我們所有關于時區處理的問題都是glibc中處理時區的問題。 這個問題最權威的文檔就是glibc的官方文檔,里面關于TZ環境變量的描述介紹了時區問題的處理。

https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html#TZ-Variable

其中和我們相關的部分如下。

核心意思如下: 在glibc中,TZ環境變量的值是一個文件的名字,這個文件的內容描述了時區相關的信息

如果TZ這個環境變量沒有設置,那么系統會選擇一個默認值,在glibc中,其默認值為/etc/localtime. 如果TZ環境變量有值,并且這個值是以/開頭的,那么是一個絕對路徑的文件名,否則文件名為/usr/share/zoneinfo/$TZ. /usr/share/zoneinfo目錄下面有世界各地的本地時間信息,比如Asia/Shanghai.一般這個目錄下面的文件是被tzdata這個包安裝的。

按照這個思路,我們強制指定TZ環境變量為Asia/Shanghai,時區正確

強制修改/etc/localtime文件,時區也正確。

docker容器處理時區的方法

根據上面的描述,在docker容器中設置時區其實有兩個主要的方法。 一個是直接進行TZ環境變量設置,另一個是不設置TZ環境變量,直接修改/etc/localtime的內容(通過軟鏈接或者文件直接復制都可以)

這里以設置TZ環境變量為例(我自己比較喜歡這樣做,感覺比修改/etc/localtime更方便)。

首先,我們可以在Dockerfile里面添加ENV TZ=Asia/Shanghai,這樣docker build出來的鏡像默認TZ環境變量就是我們要的值了。

其次,我們也可以在容器拉起的時候使用-e TZ=Asia/Shanghai進行TZ環境變量設置,這個設置就是動態的,同一個鏡像我們可以在拉起的時候設置不同的值。

總結

docker中的時區處理實際上就是glibc中的時區處理,了解了glibc中對事情的處理方法,核心是TZ環境變量和/etc/localtime文件,docker中的時期問題處理就簡單了.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208958
收藏 人收藏

    評論

    相關推薦

    【Intel Edison試用體驗】+edison時區設置

    4,要根據地理位置找到本地的時區,運行以下命令:timedatectl list-timezones | egrep -o "Asia/S.*" 5,要在Linux設置本地
    發表于 08-10 15:08

    Linux系統的正確時區調整方法

    如果你的 Linux 系統時區配置不正確,必需要手動調整到正確的當地時區。NTP 對時間的同步處理只計算當地時間與 UTC 時間的偏移量,因此配置一個 NTP 對時間進行同步并不能解決
    發表于 07-22 07:53

    Linux與Unix到底有什么不同

    Linux 與 Unix 到底有什么不同?
    發表于 05-08 14:36

    怎樣去修改嵌入式Linux時區

    造成時間差8小時呢?考慮到是時區的問題,查詢系統當前的時區設置 date -R,看到系統是 +0000 時區,而中國統一采用北京所在的東8時...
    發表于 11-02 09:05

    Linux系統時間分為哪幾種

    Linux系統時間分為兩種:系統時間和硬件時間。系統時間為Linux內核時間,硬件時間一般為BOIS的RTC時間。Linux內核在啟動時,會嘗試讀取BIOS
    發表于 11-04 08:14

    怎樣在嵌入式linux修改時區

    一個嵌入式linux項目,近日有客戶使用電腦時間對其進行校時,結果發現時間比電腦時間晚8小時,這是因為電腦時間用的是本地時間,即東八區時間。解決方法,就是在嵌入式linux修改時區。
    發表于 11-04 09:13

    嵌入式 linux對TZ時區是如何設置的

    date -R查看系統時區date -s “2020-10-23 09:38:00” 設置系統時間hwclock[-r|–show]//read[-s |–hctosys]//rtc ->
    發表于 11-04 07:24

    linux系統的時區有哪些

    關于時區的概念,其實初中地理課已經涉及,很多人都多少了解一些,可能只是細節搞不太清楚。為什么會將地球分為不同時區呢?因為地球總是自西向東自轉,東邊總比西邊先看到太陽,東邊的時間也總比西邊的早。東邊
    發表于 11-03 10:48 ?4531次閱讀

    Java如何顯示不同時區的時間(原理詳解)

    當我們使用System.out.println來輸出一個時間的時候,他會調用Date類的toString方法,而該方法會讀取操作系統的默認時區來進行時間的轉換。
    發表于 01-01 14:58 ?1.2w次閱讀

    Linux內核到底是什么應該如何學習

    Linux可以說是近期非?;鸬牧?,有的人想學習linux內核,那他到底是什么呢?
    發表于 10-06 18:02 ?1893次閱讀

    嵌入式Linux 硬件時間-系統時間-時區設置

    Linux系統時間分為兩種:系統時間和硬件時間。系統時間為Linux內核時間,硬件時間一般為BOIS的RTC時間。Linux內核在啟動時,會嘗試讀取BIOS
    發表于 11-01 16:58 ?11次下載
    嵌入式<b class='flag-5'>Linux</b> 硬件時間-系統時間-<b class='flag-5'>時區</b>設置

    嵌入式Linux時區的修改

    造成時間差8小時呢?考慮到是時區的問題,查詢系統當前的時區設置 date -R,看到系統是 +0000 時區,而中國統一采用北京所在的東8時...
    發表于 11-01 17:07 ?8次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>時區</b>的修改

    嵌入式linux設置時區

    一個嵌入式linux項目,近日有客戶使用電腦時間對其進行校時,結果發現時間比電腦時間晚8小時,這是因為電腦時間用的是本地時間,即東八區時間。解決方法,就是在嵌入式linux修改時區
    發表于 11-01 17:07 ?9次下載
    嵌入式<b class='flag-5'>linux</b><b class='flag-5'>中</b>設置<b class='flag-5'>時區</b>

    嵌入式 linux 對時 TZ時區設置

    date -R 查看系統時區date -s “2020-10-23 09:38:00” 設置系統時間hwclock [-r |–show] //read[-s |–hctosys
    發表于 11-01 17:37 ?7次下載
    嵌入式 <b class='flag-5'>linux</b> 對時 TZ<b class='flag-5'>時區</b>設置

    linux與window如何統一都顯示為中國時區的時間

    同樣的代碼,linux上的時間 比window上的時間少8小時,如何統一都顯示為中國時區的時間?
    的頭像 發表于 08-19 17:58 ?1208次閱讀
    <b class='flag-5'>linux</b>與window如何統一都顯示為中國<b class='flag-5'>時區</b>的時間