CST和GMT時間的區別

R-B發表於2021-09-09


問題描述
今天遇到一個奇怪的問題,在伺服器端透過 Java 獲取當前時間為 Fri Aug 28 09:37:46 CST 2009, 轉化為GMT時間為:28 Aug 2009 01:37:46 GMT,也就是說GMT時間加上 8 個小時等於CST表示的時間, 那這個CST不就是北京時間麼,因為我們是在東八區的。

一切看起來很正常,不過在客戶端用JavaScript解析這個時間就有問題了: 

// Fri Aug 28 2009 23:37:46 GMT+0800
new Date('Fri Aug 28 09:37:46 CST 2009').toString();

好奇怪,這次GMT和CST表示的時間居然相差整整 14 個小時?



百度一下

找到這篇文章,問題已經很明瞭。

GMT(Greenwich Mean Time)代表格林尼治標準時間,這個大家都知道。
而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


可見,CST可以同時表示美國,澳大利亞,中國,古巴四個國家的標準時間。

前面提到的透過 Java 獲取的CST時間用的是China Standard Time,而客戶端JavaScript則預設採用的是美國的中部時間。

所以將 Fri Aug 28 09:37:46 CST 2009 加上 6 個小時,再加上 8 個小時,就等於 Fri Aug 28 2009 23:37:46 GMT+0800

可見,在以後的程式設計中為了避免錯誤,還是不要使用CST時間,而儘量採用GMT時間。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2808705/,如需轉載,請註明出處,否則將追究法律責任。

相關文章