24時區,GMT,UTC,DST,CST時間詳解

beachboyy發表於2015-03-28

今天遇到一個奇怪的問題,在伺服器端通過 c# 獲取當前時間為 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時間。

相關文章