『壹』 怎樣更改linux小紅帽系統時區由mst改成cst
1) 找到相應的時區文件 /usr/share/zoneinfo/Asia/Shanghai
用這個文件替換當前的/etc/localtime文件。
2) 修改/etc/sysconfig/clock文件,修改為:
ZONE="Asia/Shanghai"
[color=red]UTC=true[/color]
ARC=false
3)
時間設定成2005年8月30日的命令如下:
#date -s 08/30/2005
將系統時間設定成下午6點40分0秒的命令如下。
#date -s 18:40:00
4)
同步BIOS時鍾,強制把系統時間寫入CMOS,命令如下:
#clock -w
5)重啟apache。
參考資料二、
本文檔解釋了如何從linux下設置計算機的時鍾,如何設置您的時區和其它與linux如何保存時間相關的材料。
您的計算機有兩個時鍾,一個是始終運行的、由電池供電的( 硬體的、BIOS或CMOS )時鍾,另一個是由運行在您的計算機上的操作系統維護的( 系統 )時鍾。硬體時鍾通常只在操作系統啟動時用來設置系統時鍾,然後直到重啟或關閉系統,由系統時鍾來記錄時間。在Linux 系統中,您可以選擇用UTC/GMT 時間或本地時間來記錄硬體時鍾。推薦的選項是用UTC 記錄,因為夏令時可以自動記錄。使用UTC 記錄硬體時鍾的唯一不足是,如果您使用雙系統,其它操作系統,如DOS 要求硬體時鍾用本地時間設置,那麼在那個操作系統里時間將是錯誤的。
設置時區:
Linux 下的時區是通過建立從/etc/localtime[1] 到/usr/share/zoneinfo [2] 目錄下與您所在時區相符的文件的符號鏈結實現的。例如,由於我在南澳大利亞,/etc/localtime就是到 /usr/share/zoneinfo/Australia/South的符號鏈結。要建立這個鏈結,運行:
ln -sf ../usr/share/zoneinfo/your/zone /etc/localtime
替換your/zone 為形如Australia/NSW或Australia/Perth 的文件。看看/usr/share/zoneinfo目錄都有什麼時區。
[1] 這里假設/usr/share/zoneinfo 是到/etc/localtime 的鏈結的前提是Redhat Linux
[2] 在舊版本的系統里,您會發現使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。參考後面「一些應用程序中時間錯誤」。
設置UTC 或本地時間:
當Linux 啟動時,一個啟動腳本運行/sbin/hwclock 程序復制當前硬體時鍾時間到系統時鍾。hwclock 假定硬體時鍾設置為本地時間,除非它使用了--utc 參數。在RedHat Linux下您不是編輯啟動腳本,而是編輯/etc/sysconfig/clock 文件,相應的改變UTC 一行為UTC=true或UTC=false。
設置系統時鍾:
在Linux 下設置系統時鍾使用date命令。例如,設置當前時間和日期為July 31,11:16pm,運行date 07312316 ( 注意這里的時間是24小時制) ;如果您想設置年份為1998, 應該運行date 073123161998 ;要是也想設置秒,運行date 07312316.30或date 073123161998.30。要查看Linux 當前本地時間,使用date,不帶參數。
設置硬體時鍾:
要設置硬體時鍾,我喜歡的方式是首先設置系統時鍾,然後設置硬體時鍾為當前系統時鍾時間,使用命令/sbin/hwclock --systohc (或 /sbin/hwclock --systohc --utc ) ,如果您使用UTC 保存硬體時鍾) 。要查看當前硬體時鍾的設置,不帶參數運行hwclock 。如果硬體時鍾是UTC 保存,而您想看相應的本地時間,運行/sbin/hwclock --utc 。
一些應用程序中時間錯誤:
如果一些應用程序,如date顯示了正確的時間,而另一些則錯誤,而您運行著RedHat Linux 5.0/5.1,您很可能遇到了一個由於將時區信息從/usr/lib/zoneinfo 移動到/usr/share/zoneinfo 引起的bug 。修復的方法是建立一個從/usr/lib/zoneinfo 到/usr/share/zoneinfo 的符號鏈結:
ln -s ../share/zoneinfo /usr/lib/zoneinfo 。
小結:
*/etc/sysconfig/clock 設置硬體時鍾,無論是用UTC 保存還是用本地時間保存
*建立/etc/localtime到/usr/share/zoneinfo/...的符號鏈結來設置時區
*運行date MMDDhhmm 來設置當前系統日期/ 時間
*運行/sbin/hwclock --systohc [--utc]來設置硬體時鍾
其它有趣的註解:
Linux kernel總是按照從UTC 時間1970年1 月1 日午夜開始的秒數來儲存和計算時間,無論您的硬體時鍾是否用UTC 保存。轉換到本地時間的工作是運行時完成的。這樣做的一個妙處是,如果某人從不同的時區使用您的計算機,他可以設置時區環境變數,所有的日期和時間可以按他的時區正確顯示。
如果自UTC 1972年1 月1 日開始的秒數用保存為帶正負號32位整數,如同在您的Linux/Intel 系統上一樣,您的時鍾將在2038年停止工作。Linux 沒有Y2K 問題,但是確實存在2038年的問題。令人期望的是,那時我們都會使用64位系統來運行Linux 了。64位整數將使我們的時鍾一直運行到大約2922.71億年。
其它值得一看的程序:
* rdate ──從遠程機器獲得當前時間;可以用來設置系統時間
* xntpd ──類似rdata ,但是它是相當精確的,並且您需要有永久的網路連結xntpd 持續地運行,記錄網路延時、時鍾漂移等事件但是也有一個程序( ntpdate ) 包括在內,像rdate 一樣設置當前時間。
『貳』 linux 怎麼設置硬體時鍾 UTC
一、首先要弄清幾個概念:
1. 「系統時間」與「硬體時間」
系統時間: 一般說來就是我們執行 date 命令看到的時間,linux系統下所有的時間調用(除了直接訪問硬體時間的命令)都是使用的這個時間。
硬體時間: 主板上BIOS中的時間,由主板電池供電來維持運行,系統開機時要讀取這個時間,並根據它來設定系統時間(注意:系統啟動時根據硬體時間設定系統時間的過程可能存在時區換算,這要視具體的系統及相關設置而定)。
2. 「UTC時間」與「本地時間」
UTC時間:Coordinated Universal 8 e2 i( H7 t0 ^/ ^Time 世界協調時間(又稱世界標准時間、世界統一時間),在一般精度要求下,它與GMT(Greenwich Mean Time,格林威治標准時間)是一樣的,其實也就是說 GMT≈UTC,但 UTC 是以原子鍾校準的,更精確。
本地時間:由於處在不同的時區,本地時間一般與UTC是不同的,換算方法就是
本地時間 = UTC + 時區 或 UTC = 本地時間 - 時區
時區東為正,西為負,例如在中國,本地時間都使用北京時間,在linux上顯示就是 CST(China Standard Time,中國標准時,注意美國的中部標准時Central Standard Time也縮寫為CST,與這里的CST不是一回事!),時區為東八區,也就是 +8 區,所以 CST=UTC+(+8小時) 或 UTC=CST-(+8小時)。
二、設置硬體時鍾 UTC
硬體時間 /sbin/hwclock
直接調用 /sbin/hwclock 顯示的時間就是 BIOS 中的時間嗎?未必!這要看 /etc/sysconfig/clock 中是否啟用了UTC,如果啟用了UTC(UTC=true),顯示的其實是經過時區換算的時間而不是BIOS中真正的時間,如果加上 --localtime 選項,則得到的總是 BIOS 中實際的時間.
[12-01 19:07> ~]# hwclock
2009年12月07日 星期一 14時28分43秒 -0.611463 seconds
[12-01 19:07> ~]# hwclock --utc
2009年12月07日 星期一 14時28分46秒 -0.594189 seconds
[12-01 19:07> ~]# hwclock --localtime
2009年12月07日 星期一 06時28分50秒 -0.063875 seconds
三、最後總結
1)/etc/sysconfig/clock 文件,只對 hwclock 命令有效,且只在系統啟動和關閉的時候才有用(修改了其中的 UTC=true 到 UTC=false 的前後,執行 hwclock (--utc, 或 --localtime) 都沒有變化,要重啟系統後才生效);
2)/etc/rc.d/rc.sysinit 文件,run once at boot time,其中有從硬體時鍾同步時間到系統時間的操作;
3)hwclock --localtime 的輸出,才是硬體時鍾真正的時間。如果輸出結果帶時區(比如CST),還要看/etc/sysconfig/clock里的UTC參數,如果 UTC=false,那時區有意義;如果 UTC=true,那時區沒意義,實際上是UTC時間。
4)在 /etc/sysconfig/clock 中 UTC=false 時,date、hwclock、hwclcok --localtime 輸出的時間應該都一致,且此時 hwclock --utc是沒有意義的;
5)在 /etc/sysconfig/clock 中 UTC=ture 時,date、hwclock 的輸出是一致的,hwclock --localtime 的輸出則是UTC時間;
6)如果不想在輸出中帶時區,則 export LANG=C ,然後再運行 hwclock 就沒有什麼CST了,免得時區誤導你;
7)hwclock --utc 容易理解出錯
8)系統關閉時會同步系統時間到硬體時鍾,系統啟動時會從硬體時鍾讀取時間更新到系統,這2個步驟都要根據 /etc/sysconfig/clock 文件中UTC的參數來設置時區轉換。
『叄』 怎麼把linux上的UTC時間改成CST時間
[root@localhost ~]# date
Fri Apr 14 23:26:05 EDT 2006 //EDT (美國)東區時區
[root@localhost ~]# date -s 2011/9/30
Fri Sep 30 00:00:00 EDT 2011
[root@localhost ~]# date -s 14:18
Fri Sep 30 14:18:00 EDT 2011
[root@localhost ~]# date
Fri Sep 30 14:18:01 EDT 2011
[root@localhost ~]# hwclock -w
/usr/share/zoneinfo/Asia/ 下保存著系統各個時區信息
/etc/localtime 保存當前系統時區及時間信息
[root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite `/etc/localtime』? y
[root@localhost ~]# date
Sat Oct 1 02:20:03 CST 2011 //更改為CST
[root@localhost ~]# date -R
Sat, 01 Oct 2011 02:21:45 +0800
然後重新設置下時間即可。
我們也可以通過rh系統中的命令來修改:
[root@localhost ~]# tzselect // tzselect – select a time zone
比較人性化,可以根據提示直接修改即可。
『肆』 如何將linux 的本地時間設置為utc時間
如果你的 Linux 系統時區配置不正確,必需要手動調整到正確的當地時區。NTP 對時間的同步處理只計算當地時間與 UTC 時間的偏移量,因此配置一個 NTP 對時間進行同步並不能解決時區不正確的問題。所以大家在用了國外雲計算服務商如 Microsoft Azure 或其它 VPS、虛擬機時,需要注意是否與中國大陸的時區一致。
查看Linux當前時區
你可以使用如下命令非常容易地就查看到 linux 系統的當前時區:
date
ls -l /etc/localtime
linux-time02
獲取時區TZ值
要更改 Linux 系統時區首先得獲知你所當地時區的 TZ 值,使用 tzselect 命令即可查看並選擇已安裝的時區文件。
執行 tzselect 命令
linux-time03
通過向導選擇你所在大洲、國家和城市
tzselect 最終將以 Posix TZ 格式(例如 Asia/Shanghai)輸出你所在的時區值,將此記錄下來。
linux-time03
更改每個用戶的時區
Linux 用戶一個多用戶系統,每個用戶都可以配置自己所需的時區,你可以為自己新增一個 TZ 環境變數:
export TZ='Asia/Shanghai'
執行完成之後需要重新登錄系統或刷新 ~/.bashrc 生效。
source ~/.bashrc
更改Linux系統時區
要更改 Linux 系統整個系統范圍的時區可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具體時區請用自己獲取到的 TZ 值進行替換。
使用Systemd更改Linux系統時區
如果你使用的 Linux 系統使用 Systemd,還可以使用 timedatectl 命令來更改 Linux 系統范圍的時區。在 Systemd 下有一個名為 systemd-timedated 的系統服務負責調整系統時鍾和時區,我們可以使用 timedatectl 命令對此系統服務進行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
linux-time05
最後,如果你發現 Ubuntu 與 Windows 雙系統時間不同步,可以參考我們之前的文章說明和解決辦法。
『伍』 linux時間戳轉換成標准時間用什麼函數
可以用date的-d參數,致於函數可以自己寫一個:
date命令可以將標準的時間格式轉換成unix時間戳
例如:
#date-d'2014-11-2413:10'+%s
1416805800
同樣也可以使用date命令將unix時間戳轉換成標準的時間格式
例如:
#date-d'1970-01-01UTC1416805800seconds'
MonNov2413:10:00CST2014
『陸』 Linux伺服器怎麼修改時區和時間
一、查看和修改Linux的時區 1. 查看當前時區 命令 : "date -R" 2. 修改設置Linux伺服器時區 方法 A 命令 : "tzselect" 方法 B 僅限於RedHat Linux 和 CentOS 命令 : "timeconfig" 方法 C 適用於Debian 命令 : "dpkg-reconfigure tzdata" 3. 復制相應的時區文件,替換系統時區文件;或者創建鏈接文件 cp /usr/share/zoneinfo/$主時區/$次時區 /etc/localtime 例如:在設置中國時區使用亞洲/上海(+8) cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 二、查看和修改Linux的時間 1. 查看時間和日期 命令 : "date" 2.設置時間和日期 例如:將系統日期設定成2009年11月3日的命令 命令 : "date -s 11/03/2009" 將系統時間設定成下午5點55分55秒的命令 命令 : "date -s 17:55:55" 3. 將當前時間和日期寫入BIOS,避免重啟後失效 命令 : "hwclock -w" 註: date 不加參數可以直接看到當前日期時間 cal 不加參數可以直接看到本月月歷
『柒』 linux怎麼將時間戳轉換為時間
可以用date的-d參數,致於函數可以自己寫一個:
date命令可以將標準的時間格式轉換成unix時間戳
例如:
12#
date
-d
'2014-11-24
13:10'
+%s1416805800同樣也可以使用date命令將unix時間戳轉換成標準的時間格式
例如:
12#
date
-d
'1970-01-01
UTC
1416805800
seconds'Mon
Nov
24
13:10:00
CST
2014