[精讚] [會員登入]
3375

時間和時區CST UTC GMT的說明及設定

時間和時區CST DST UTC GMT的說明設定,及php時間的設置

此文完整連結 http://n.sfs.tw/10481

複製連結 時間和時區CST UTC GMT的說明及設定@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2016-12-25 11:48:36 最後編修
2016-12-25 10:36:20 By 瘦河馬
 

GMT, UTC, DST, CST

格林威治標準時間GMT

      英國1884年決定以通過格林威治的子午線作為劃分地球東西兩半球的經度零度。觀測所門口牆上有一個標誌24小時的時鐘,顯示當下的時間。對全球而言,這裡所設定的時間是世界時間參考點,全球都以格林威治的時間作為標準來設定時間,這就是我們耳熟能詳的「格林威治標準時間」(Greenwich Mean Time,簡稱G.M.T.)的由來。

世界協調時間UTC

      多數的兩地時間表都以GMT來表示,但也有些兩地時間表上看不到GMT字樣,出現的反而是UTC這3個英文字母,究竟何謂UTC?事實上,UTC指的是 Coordinated Universal Time- 世界協調時間(又稱世界標準時間、世界統一時間),是經過平均太陽時(以格林威治時間GMT為準)、地軸運動修正後的新時標以及以「秒」為單位的國際原子時所綜合精算而成的時間,計算過程相當嚴謹精密,因此若以「世界標準時間」的角度來說,UTC比GMT來得更加精準。其誤差值必須保持在0.9秒以內,若 大於0.9秒則由位於巴黎的國際地球自轉事務中央局發佈閏秒,使UTC與地球自轉週期一致。所以基本上UTC的本質強調的是比GMT更為精確的世界時間標準,GMT與UTC的功能與精確度是沒有差別的

夏日節約時間DST

      所謂「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),是指在夏天太陽升起的比較早時,將時鐘撥快一小時,以提早日光的使用,在英國則稱為夏令時間(Summer Time)。這個構想於1784年由美國班傑明·富蘭克林提出來,1915年德國成為第一個正式實施夏令日光節約時間的國家,以削減燈光照明和耗電開支。 自此以後,全球以歐洲和北美為主的約70個國家都引用這個做法。

CST時間

CST卻同時可以代表如下 4 個不同的時區:
   Central Standard Time (USA) UT-6:00
   Central Standard Time (Australia) UT+9:30
   China Standard Time UT+8:00
   Cuba Standard Time UT-4:00

上面的資料編修自[1]

可見,CST可以同時表示美國,澳大利亞,中國,古巴四個國家的標準時間。因此,一個簡單的換算:

GMT + 8 = UTC + 8 = CST

我自己的解釋,因為國際換日線後四小時就是台灣中國的時區,再經過八小時到英國GMT,那表示CST比GMT快八個小時。

說穿了,UTC就是英國當地的時間,誰叫他要是制定時間時的強國,舉例言,UTC1:00代表英國當時是1:00早上天還沒亮的凌晨,這時台灣因為是UTC+8的時區,台灣此時已經是早上9:00了的股票開盤時間;同時,由於日本是UTC+9的時區,他們已經是10:00了。而同時的美國東部加紐約的時區是UTC-5,他們還是1:00-5:00=-4:00也就是前一天,而且還要4:00才過隔天,換句話說是前一天的20點,紐約當地晚上10點。 這也是為什麼星期五我們股市收盤完了,等到了我們的晚上10:30左右美國紐約股市才開盤,原來這時只是美國的星期五早上9:30而已,我們星期五的這天都快過完了,他們的星期五才剛開始呢!
我想最衝突的應該算是國際換日線上的國家,例如東加和薩模亞SAMOA,他們的時區是+13,代表全世界首先到隔天的就是他們,可是很衝突的是就他們的鄰島美屬薩模亞,才隔20公里而已,他們的時區是-11,這代表說薩模亞如果已經是星期一要上班的時間,搭船到20公里外的美屬薩模亞,他們的星期日才剛開始呢。或是說當美屬薩模亞的美軍星期日要去薩模亞玩的時候,薩模亞已經是星期一。

設定時間

[FREEBSD]
設定時間為 20101220 11:00,格式 date yymmddhhmm.ss
# date 1012201100.00

查看系統時間
# date
2010年12月20日 周一 11時06分03秒 CST

修改時區,在FREEBSD要修改時區只要把那個時區的設定檔複製到 /etc/localtime

# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
修改 Kernal time (adjkerntz = adjust kernal timezone)
# adjkerntz -a

# 微調時脈 Linux's adjtimex(2) is called ntp_adjtime(2) in FreeBSD.
註:據說在 FREEBSD 中沒有相對應於 hwclock 的指令,同時以上所有指令取出的時間都是 BIOS時間,而不是系統本身的時間??

利用 NTP 校時
# ntpdate -v -b time.stdtime.gov.tw
20 Dec 11:23:31 ntpdate[53976]: ntpdate 4.2.4p5-a Sun Dec  7 02:16:44 UTC 2008 (1)
20 Dec 11:23:32 ntpdate[53976]: step time server 163.17.40.2 offset 0.152610 sec

[LINUX]
設定時間為 20101220 11:00  格式為 date MMDDhhmmYYYY
# date 122011002010

讀取 BIOS 時間
# hwclock -r read
將系統時間-->硬體時間
# hwclock -w
將硬體時間-->系統時間
# hwclock --hctosys

利用 NTP 校時
# ntpdate -s ntpdate -s time.stdtime.gov.tw

修改時區
# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime

# vi /etc/sysconfig/clock
ZONE="Asia/Taipei"
UTC=false
ARC=false

PHP中timezone的設置

在php升級到5.3後會出現錯誤,這個是時區上的錯誤:

PHP Fatal error:  Uncaught exception 'VerboseException' with message 'date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead' in ....

PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in .... on line ...

因此得修改了php.ini 中的timezone

# vi /etc/php.ini

把這行改為Asia/Taipei即解決:
date.timezone = "Asia/Taipei"

中國可改為 Asia/Shanghai或Asia/Chongqing,不要改為 Asia/Beijing 錯誤的設定

延伸閱讀

- Linux shell 的date表示法

- 多出的一秒鐘~閏秒

參考資料

[1] http://www.51testing.com/?uid-248074-action-viewspace-itemid-209865

[2] 維基百科的時區地圖高清

[3] http://labs.almerblank.com/2009/10/amfphp-fatal-errors-after-php-5-3-upgrade-part-1/


原文 2010-12-20 10:43:51 2011-02-01 15:45:50

你可能感興趣的文章

[find] 活用 find 指令參數-atime -Btime -ctime -mtime 限制尋找時間 活用 find 指令參數-atime -Btime -ctime -mtime 限制尋找時間

[SIP] Kphone安裝記錄 Kphone是2008年當時ipv6剛要推廣時,唯一支援IPv6的公用網路電話,安裝的全記錄..

利用tr如何移除檔案中的 ^M 利用tr如何移除檔案中的換行 ^M

[Linux] mongodb 初步--3/3 我使用mongo 的一些大小事:資料庫的權限、幫助

[bc] linux 的計算機bc 如何進行8進位、10進位、16進位等轉換 linux 的計算機bc--如何進行8進位、10進位、16進位等轉換

計算檔案數和目錄數 linux/freebsd等系統利用ls來計算檔案數和目錄數、只列出目錄的方法

[Linux] ls --color 的檔案特徵及顏色意義 ls --color 時看到的檔案特徵及顏色意義及和檔案權限有關的指令

[Linux] 進行字串取代,三種字串取代的方法 使用vi、sed、perl來取代字串

[Rsync] Freebsd10+Rsync / Centos7+Rsync Freebsd10 和 Centos7 安裝Rsync

[SIP] OPENSER LINUX版本安裝全記錄 [SIP] OPENSER LINUX版本安裝全記錄

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper